cel/parser
Types
pub type Arithmetic {
Add
Sub
Mul
Div
Mod
}
Constructors
-
Add
-
Sub
-
Mul
-
Div
-
Mod
pub type Atom {
Int(Int)
UInt(Int)
Float(Float)
String(String)
Bytes(BitArray)
Bool(Bool)
Null
}
Constructors
-
Int(Int)
-
UInt(Int)
-
Float(Float)
-
String(String)
-
Bytes(BitArray)
-
Bool(Bool)
-
Null
pub type BinaryOp {
Arithmetic(Arithmetic)
Relation(Relation)
Logical(Logical)
}
Constructors
-
Arithmetic(Arithmetic)
-
Relation(Relation)
-
Logical(Logical)
pub type Error {
UnexpectedEndOfFile
UnexpectedSourceStr(String, Int)
UnexpectedToken(t.Token, Int)
DeadEnd(Tokens)
}
Constructors
-
UnexpectedEndOfFile
-
UnexpectedSourceStr(String, Int)
-
UnexpectedToken(t.Token, Int)
-
DeadEnd(Tokens)
pub type Expression {
BinaryOperation(ExpressionData, BinaryOp, ExpressionData)
Unary(UnaryOp, ExpressionData)
Ternary(ExpressionData, ExpressionData, ExpressionData)
List(List(ExpressionData))
Map(List(#(ExpressionData, ExpressionData)))
Member(ExpressionData, Member)
FunctionCall(
String,
option.Option(ExpressionData),
List(ExpressionData),
)
Atom(Atom)
Ident(String)
}
Constructors
-
BinaryOperation(ExpressionData, BinaryOp, ExpressionData)
-
Unary(UnaryOp, ExpressionData)
-
Ternary(ExpressionData, ExpressionData, ExpressionData)
-
List(List(ExpressionData))
-
Map(List(#(ExpressionData, ExpressionData)))
-
Member(ExpressionData, Member)
-
FunctionCall( String, option.Option(ExpressionData), List(ExpressionData), )
-
Atom(Atom)
-
Ident(String)
pub opaque type ExpressionData
pub type Member {
Attribute(String)
Index(ExpressionData)
}
Constructors
-
Attribute(String)
-
Index(ExpressionData)
pub type Relation {
LessThan
LessThanEq
GreaterThan
GreaterThanEq
Equals
NotEquals
In
}
Constructors
-
LessThan
-
LessThanEq
-
GreaterThan
-
GreaterThanEq
-
Equals
-
NotEquals
-
In