Module Concrete.Expression

See TaglessFinal.Expression.

type t = private
| BoolOp of {
location : Location.t;
op : BooleanOperator.t;
values : t list;
}
| NamedExpr of {
location : Location.t;
target : t;
value : t;
}
| BinOp of {
location : Location.t;
left : t;
op : BinaryOperator.t;
right : t;
}
| UnaryOp of {
location : Location.t;
op : UnaryOperator.t;
operand : t;
}
| Lambda of {
location : Location.t;
args : Arguments.t;
body : t;
}
| IfExp of {
location : Location.t;
test : t;
body : t;
orelse : t;
}
| Dict of {
location : Location.t;
keys : t option list;
values : t list;
}
| Set of {
location : Location.t;
elts : t list;
}
| ListComp of {
location : Location.t;
elt : t;
generators : Comprehension.t list;
}
| SetComp of {
location : Location.t;
elt : t;
generators : Comprehension.t list;
}
| DictComp of {
location : Location.t;
key : t;
value : t;
generators : Comprehension.t list;
}
| GeneratorExp of {
location : Location.t;
elt : t;
generators : Comprehension.t list;
}
| Await of {
location : Location.t;
value : t;
}
| Yield of {
location : Location.t;
value : t option;
}
| YieldFrom of {
location : Location.t;
value : t;
}
| Compare of {
location : Location.t;
left : t;
ops : ComparisonOperator.t list;
comparators : t list;
}
| Call of {
location : Location.t;
func : t;
args : t list;
keywords : Keyword.t list;
}
| FormattedValue of {
location : Location.t;
value : t;
conversion : int;
format_spec : t option;
}
| JoinedStr of {
location : Location.t;
values : t list;
}
| Constant of {
location : Location.t;
value : Constant.t;
kind : string option;
}
| Attribute of {
location : Location.t;
value : t;
attr : Identifier.t;
ctx : ExpressionContext.t;
}
| Subscript of {
location : Location.t;
value : t;
slice : t;
ctx : ExpressionContext.t;
}
| Starred of {
location : Location.t;
value : t;
ctx : ExpressionContext.t;
}
| Name of {
location : Location.t;
id : Identifier.t;
ctx : ExpressionContext.t;
}
| List of {
location : Location.t;
elts : t list;
ctx : ExpressionContext.t;
}
| Tuple of {
location : Location.t;
elts : t list;
ctx : ExpressionContext.t;
}
| Slice of {
location : Location.t;
lower : t option;
upper : t option;
step : t option;
}
include Sexplib0.Sexpable.S with type t := t
val t_of_sexp : Sexplib0__.Sexp.t -> t
val sexp_of_t : t -> Sexplib0__.Sexp.t
include Ppx_compare_lib.Comparable.S with type t := t
val compare : t Base__Ppx_compare_lib.compare
include Ppx_hash_lib.Hashable.S with type t := t
val hash_fold_t : t Base__Ppx_hash_lib.hash_fold
val hash : t -> Base__Ppx_hash_lib.Std.Hash.hash_value
val make_boolop_of_t : location:Location.t -> op:BooleanOperator.t -> ?values:t list -> unit -> t
val make_namedexpr_of_t : location:Location.t -> target:t -> value:t -> unit -> t
val make_binop_of_t : location:Location.t -> left:t -> op:BinaryOperator.t -> right:t -> unit -> t
val make_unaryop_of_t : location:Location.t -> op:UnaryOperator.t -> operand:t -> unit -> t
val make_lambda_of_t : location:Location.t -> args:Arguments.t -> body:t -> unit -> t
val make_ifexp_of_t : location:Location.t -> test:t -> body:t -> orelse:t -> unit -> t
val make_dict_of_t : location:Location.t -> ?keys:t option list -> ?values:t list -> unit -> t
val make_set_of_t : location:Location.t -> ?elts:t list -> unit -> t
val make_listcomp_of_t : location:Location.t -> elt:t -> ?generators:Comprehension.t list -> unit -> t
val make_setcomp_of_t : location:Location.t -> elt:t -> ?generators:Comprehension.t list -> unit -> t
val make_dictcomp_of_t : location:Location.t -> key:t -> value:t -> ?generators:Comprehension.t list -> unit -> t
val make_generatorexp_of_t : location:Location.t -> elt:t -> ?generators:Comprehension.t list -> unit -> t
val make_await_of_t : location:Location.t -> value:t -> unit -> t
val make_yield_of_t : location:Location.t -> ?value:t -> unit -> t
val make_yieldfrom_of_t : location:Location.t -> value:t -> unit -> t
val make_compare_of_t : location:Location.t -> left:t -> ?ops:ComparisonOperator.t list -> ?comparators:t list -> unit -> t
val make_call_of_t : location:Location.t -> func:t -> ?args:t list -> ?keywords:Keyword.t list -> unit -> t
val make_formattedvalue_of_t : location:Location.t -> value:t -> conversion:int -> ?format_spec:t -> unit -> t
val make_joinedstr_of_t : location:Location.t -> ?values:t list -> unit -> t
val make_constant_of_t : location:Location.t -> value:Constant.t -> ?kind:string -> unit -> t
val make_attribute_of_t : location:Location.t -> value:t -> attr:Identifier.t -> ctx:ExpressionContext.t -> unit -> t
val make_subscript_of_t : location:Location.t -> value:t -> slice:t -> ctx:ExpressionContext.t -> unit -> t
val make_starred_of_t : location:Location.t -> value:t -> ctx:ExpressionContext.t -> unit -> t
val make_name_of_t : location:Location.t -> id:Identifier.t -> ctx:ExpressionContext.t -> unit -> t
val make_list_of_t : location:Location.t -> ?elts:t list -> ctx:ExpressionContext.t -> unit -> t
val make_tuple_of_t : location:Location.t -> ?elts:t list -> ctx:ExpressionContext.t -> unit -> t
val make_slice_of_t : location:Location.t -> ?lower:t -> ?upper:t -> ?step:t -> unit -> t