use super::{CompileTimeConstant, Expression, FipsType};
#[derive(Clone,PartialEq,Debug)]
pub enum Statement {
Let(LetStatement),
Assign(AssignStatement),
Update(UpdateStatement),
Call(CallStatement)
}
#[derive(Clone,PartialEq,Debug)]
pub struct LetStatement {
pub name: String,
pub typ: FipsType,
pub initial: Expression
}
#[derive(Clone,PartialEq,Debug)]
pub struct AssignStatement {
pub assignee: String,
pub value: Expression,
pub index: Option<CompileTimeConstant<usize>>
}
#[derive(Clone,PartialEq,Debug)]
pub struct UpdateStatement {
pub interaction: String,
pub quantity: Option<String>
}
#[derive(Clone,PartialEq,Debug)]
pub struct CallStatement {
pub name: String
}