tusk_parser 0.1.2

The parser component of Tusk.
Documentation
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),
}