1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
use crate::expressions::Expression;
use crate::identifier::Identifier;
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct CodeBlock(pub Vec<Statement>);
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum Statement {
Abort,
Return(Option<Expression>),
Assign(Identifier, Expression),
#[allow(dead_code)]
TableAssign(Identifier, Expression, Expression),
IfThenElse(Expression, CodeBlock, CodeBlock),
}
#[macro_export]
macro_rules! block {
( $( $s:expr ),* ) => {
{
CodeBlock(vec![ $( $s.clone(), )* ])
}
}
}