///|
pub enum Node {
Text(String)
Interpolation(Expr)
If(Expr, Array[Node], Array[Node])
For(String, Expr, Array[Node])
Include(String)
}
///|
pub enum BinaryOp {
Eq
Ne
Lt
Le
Gt
Ge
And
Or
}
///|
pub enum UnaryOp {
Not
}
///|
pub enum Expr {
Path(Array[String])
StringLiteral(String)
IntLiteral(Int)
FloatLiteral(Double)
BoolLiteral(Bool)
NullLiteral
FilterCall(Expr, String, Array[Expr])
Binary(Expr, BinaryOp, Expr)
Unary(UnaryOp, Expr)
}