1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
package typesv1
func ExprLiteral(val *Val) *Expr {
return &Expr{Expr: &Expr_Literal{Literal: val}}
}
func ExprUnary(op UnaryOp_Operator, arg *Expr) *Expr {
return &Expr{Expr: &Expr_Unary{Unary: &UnaryOp{
Op: op,
Arg: arg,
}}}
}
func ExprBinary(lhs *Expr, op BinaryOp_Operator, rhs *Expr) *Expr {
return &Expr{Expr: &Expr_Binary{Binary: &BinaryOp{
Lhs: lhs,
Op: op,
Rhs: rhs,
}}}
}
func ExprFuncCall(name string, args ...*Expr) *Expr {
return &Expr{Expr: &Expr_FuncCall{FuncCall: &FuncCall{
Name: name,
Args: args,
}}}
}
func ExprIdentifier(id string) *Expr {
return &Expr{Expr: &Expr_Identifier{Identifier: &Identifier{
Name: id,
}}}
}
func ExprIndexor(x *Expr, index *Expr) *Expr {
return &Expr{Expr: &Expr_Indexor{Indexor: &Indexor{
X: x,
Index: index,
}}}
}
|