xshade_parser/ast/statements/
mod.rs

1use ::ast::*;
2
3pub mod expression_statement;
4pub mod local_statement;
5pub mod return_statement;
6
7pub use self::expression_statement::*;
8pub use self::local_statement::*;
9pub use self::return_statement::*;
10
11#[derive(Debug, Eq, PartialEq, Serialize, Deserialize)]
12pub enum Statement {
13    /// e.g. a `let` statement
14    Local(LocalStatement),
15
16    /// return statement
17    Return(ReturnStatement),
18
19    /// statement with only expressions e.g. `my_fn();`
20    Expression(ExpressionStatement),
21}
22
23
24impl Spanned for Statement {
25    fn get_span(&self) -> Span {
26        match *self {
27            Statement::Local(ref statement) => statement.span,
28            Statement::Return(ref statement) => statement.span,
29            Statement::Expression(ref statement) => statement.span,
30        }
31    }
32}