Current section
Files
Jump to
Current section
Files
src/gleamgen@expression.erl
-module(gleamgen@expression).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([int/1, float/1, string/1, bool/1, nil/0, unchecked_ident/1, unchecked_of_type/2, concat_string/2, todo_/1, panic_/1, math_operator/3, math_operator_float/3, call_unchecked/2, new_block/2, new_case/3, type_/1, to_unchecked/1, list/1, list_prepend/2, tuple1/1, equals/2, tuple2/2, tuple3/3, tuple4/4, tuple5/5, tuple6/6, tuple7/7, tuple8/8, tuple9/9, ok/1, error/1, call0/1, call1/2, call2/3, call3/4, call4/5, call5/6, call6/7, call7/8, call8/9, call9/10, construct0/1, unsafe_from_unchecked/1, render_attribute/2, render/2, render_statement/2]).
-export_type([expression/1, internal_expression/1, math_operator/0, statement/0]).
-opaque expression(GWW) :: {expression,
internal_expression(GWW),
gleamgen@types:generated_type(GWW)}.
-type internal_expression(GWX) :: {int_literal, integer()} |
{float_literal, float()} |
{str_literal, binary()} |
{bool_literal, boolean()} |
nil_literal |
{list_literal,
list(expression(gleamgen@types:unchecked())),
gleam@option:option(expression(gleamgen@types:unchecked()))} |
{equals,
expression(gleamgen@types:unchecked()),
expression(gleamgen@types:unchecked())} |
{tuple_literal, list(expression(gleamgen@types:unchecked()))} |
{ident, binary()} |
{todo, gleam@option:option(binary())} |
{panic, gleam@option:option(binary())} |
{math_operator,
expression(integer()),
math_operator(),
expression(integer())} |
{concat_string, expression(binary()), expression(binary())} |
{math_operator_float,
expression(float()),
math_operator(),
expression(float())} |
{call,
expression(gleamgen@types:unchecked()),
list(expression(gleamgen@types:unchecked()))} |
{single_constructor, expression(gleamgen@types:unchecked())} |
{block, list(statement())} |
{'case',
expression(gleamgen@types:unchecked()),
list(fun((gleamgen@render:context()) -> gleamgen@render:rendered()))} |
{gleam_phantom, GWX}.
-type math_operator() :: add |
sub |
mul |
'div' |
greater_than |
greater_than_or_equal |
less_than |
less_than_or_equal.
-type statement() :: {let_declaration,
binary(),
expression(gleamgen@types:unchecked())} |
{expression_statement, expression(gleamgen@types:unchecked())}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 46).
-spec int(integer()) -> expression(integer()).
int(Value) ->
{expression, {int_literal, Value}, generated_int}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 50).
-spec float(float()) -> expression(float()).
float(Value) ->
{expression, {float_literal, Value}, generated_float}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 54).
-spec string(binary()) -> expression(binary()).
string(Value) ->
{expression, {str_literal, Value}, generated_string}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 58).
-spec bool(boolean()) -> expression(boolean()).
bool(Value) ->
{expression, {bool_literal, Value}, generated_bool}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 62).
-spec nil() -> expression(nil).
nil() ->
{expression, nil_literal, generated_nil}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 307).
-spec unchecked_ident(binary()) -> expression(any()).
unchecked_ident(Value) ->
{expression, {ident, Value}, gleamgen@types:unchecked()}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 312).
-spec unchecked_of_type(binary(), gleamgen@types:generated_type(HBQ)) -> expression(HBQ).
unchecked_of_type(Value, Type_) ->
{expression, {ident, Value}, Type_}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 326).
-spec concat_string(expression(binary()), expression(binary())) -> expression(binary()).
concat_string(Expr1, Expr2) ->
{expression, {concat_string, Expr1, Expr2}, generated_string}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 340).
-spec todo_(gleam@option:option(binary())) -> expression(any()).
todo_(As_string) ->
{expression, {todo, As_string}, gleamgen@types:unchecked()}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 351).
-spec panic_(gleam@option:option(binary())) -> expression(any()).
panic_(As_string) ->
{expression, {panic, As_string}, gleamgen@types:unchecked()}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 388).
-spec math_operator(
expression(integer()),
math_operator(),
expression(integer())
) -> expression(integer()).
math_operator(Expr1, Op, Expr2) ->
{expression, {math_operator, Expr1, Op, Expr2}, generated_int}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 407).
-spec math_operator_float(
expression(float()),
math_operator(),
expression(float())
) -> expression(integer()).
math_operator_float(Expr1, Op, Expr2) ->
{expression, {math_operator_float, Expr1, Op, Expr2}, generated_int}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 632).
-spec call_unchecked(
expression(gleamgen@types:unchecked()),
list(expression(gleamgen@types:unchecked()))
) -> expression(gleamgen@types:unchecked()).
call_unchecked(Func, Args) ->
{expression, {call, Func, Args}, gleamgen@types:unchecked()}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 665).
-spec new_block(list(statement()), gleamgen@types:generated_type(HHT)) -> expression(HHT).
new_block(Expressions, Return) ->
{expression, {block, Expressions}, Return}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 670).
-spec new_case(
expression(gleamgen@types:unchecked()),
list(fun((gleamgen@render:context()) -> gleamgen@render:rendered())),
gleamgen@types:generated_type(HHY)
) -> expression(HHY).
new_case(To_match_on, Matchers, Return) ->
{expression, {'case', To_match_on, Matchers}, Return}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 675).
-spec type_(expression(HIA)) -> gleamgen@types:generated_type(HIA).
type_(Expr) ->
erlang:element(3, Expr).
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 685).
-spec to_unchecked(expression(any())) -> expression(gleamgen@types:unchecked()).
to_unchecked(Type_) ->
gleamgen_ffi:identity(Type_).
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 66).
-spec list(list(expression(GXD))) -> expression(list(GXD)).
list(Value) ->
{expression,
{list_literal,
begin
_pipe = Value,
gleam@list:map(_pipe, fun gleamgen_ffi:identity/1)
end,
none},
begin
_pipe@1 = Value,
_pipe@2 = gleam@list:first(_pipe@1),
_pipe@3 = gleam@result:map(_pipe@2, fun type_/1),
_pipe@4 = gleam@result:lazy_unwrap(
_pipe@3,
fun() -> gleamgen@types:unchecked() end
),
gleamgen@types:list(_pipe@4)
end}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 77).
-spec list_prepend(list(expression(GXI)), expression(list(GXI))) -> expression(list(GXI)).
list_prepend(Prepending, Original) ->
{expression,
{list_literal,
begin
_pipe = Prepending,
gleam@list:map(_pipe, fun gleamgen_ffi:identity/1)
end,
{some,
begin
_pipe@1 = Original,
gleamgen_ffi:identity(_pipe@1)
end}},
begin
_pipe@2 = Prepending,
_pipe@3 = gleam@list:first(_pipe@2),
_pipe@4 = gleam@result:map(_pipe@3, fun type_/1),
_pipe@5 = gleam@result:lazy_unwrap(
_pipe@4,
fun() -> gleamgen@types:unchecked() end
),
gleamgen@types:list(_pipe@5)
end}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 94).
-spec tuple1(expression(GXP)) -> expression({GXP}).
tuple1(Arg1) ->
{expression,
{tuple_literal,
[begin
_pipe = Arg1,
gleamgen_ffi:identity(_pipe)
end]},
gleamgen@types:tuple1(type_(Arg1))}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 98).
-spec equals(expression(GXS), expression(GXS)) -> expression(boolean()).
equals(First, Second) ->
{expression,
{equals,
begin
_pipe = First,
gleamgen_ffi:identity(_pipe)
end,
begin
_pipe@1 = Second,
gleamgen_ffi:identity(_pipe@1)
end},
generated_bool}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 108).
-spec tuple2(expression(GXW), expression(GXY)) -> expression({GXW, GXY}).
tuple2(Arg1, Arg2) ->
{expression,
{tuple_literal,
[begin
_pipe = Arg1,
gleamgen_ffi:identity(_pipe)
end,
begin
_pipe@1 = Arg2,
gleamgen_ffi:identity(_pipe@1)
end]},
gleamgen@types:tuple2(type_(Arg1), type_(Arg2))}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 115).
-spec tuple3(expression(GYB), expression(GYD), expression(GYF)) -> expression({GYB,
GYD,
GYF}).
tuple3(Arg1, Arg2, Arg3) ->
{expression,
{tuple_literal,
[begin
_pipe = Arg1,
gleamgen_ffi:identity(_pipe)
end,
begin
_pipe@1 = Arg2,
gleamgen_ffi:identity(_pipe@1)
end,
begin
_pipe@2 = Arg3,
gleamgen_ffi:identity(_pipe@2)
end]},
gleamgen@types:tuple3(type_(Arg1), type_(Arg2), type_(Arg3))}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 130).
-spec tuple4(expression(GYI), expression(GYK), expression(GYM), expression(GYO)) -> expression({GYI,
GYK,
GYM,
GYO}).
tuple4(Arg1, Arg2, Arg3, Arg4) ->
{expression,
{tuple_literal,
[begin
_pipe = Arg1,
gleamgen_ffi:identity(_pipe)
end,
begin
_pipe@1 = Arg2,
gleamgen_ffi:identity(_pipe@1)
end,
begin
_pipe@2 = Arg3,
gleamgen_ffi:identity(_pipe@2)
end,
begin
_pipe@3 = Arg4,
gleamgen_ffi:identity(_pipe@3)
end]},
gleamgen@types:tuple4(
type_(Arg1),
type_(Arg2),
type_(Arg3),
type_(Arg4)
)}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 147).
-spec tuple5(
expression(GYR),
expression(GYT),
expression(GYV),
expression(GYX),
expression(GYZ)
) -> expression({GYR, GYT, GYV, GYX, GYZ}).
tuple5(Arg1, Arg2, Arg3, Arg4, Arg5) ->
{expression,
{tuple_literal,
[begin
_pipe = Arg1,
gleamgen_ffi:identity(_pipe)
end,
begin
_pipe@1 = Arg2,
gleamgen_ffi:identity(_pipe@1)
end,
begin
_pipe@2 = Arg3,
gleamgen_ffi:identity(_pipe@2)
end,
begin
_pipe@3 = Arg4,
gleamgen_ffi:identity(_pipe@3)
end,
begin
_pipe@4 = Arg5,
gleamgen_ffi:identity(_pipe@4)
end]},
gleamgen@types:tuple5(
type_(Arg1),
type_(Arg2),
type_(Arg3),
type_(Arg4),
type_(Arg5)
)}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 172).
-spec tuple6(
expression(GZC),
expression(GZE),
expression(GZG),
expression(GZI),
expression(GZK),
expression(GZM)
) -> expression({GZC, GZE, GZG, GZI, GZK, GZM}).
tuple6(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6) ->
{expression,
{tuple_literal,
[begin
_pipe = Arg1,
gleamgen_ffi:identity(_pipe)
end,
begin
_pipe@1 = Arg2,
gleamgen_ffi:identity(_pipe@1)
end,
begin
_pipe@2 = Arg3,
gleamgen_ffi:identity(_pipe@2)
end,
begin
_pipe@3 = Arg4,
gleamgen_ffi:identity(_pipe@3)
end,
begin
_pipe@4 = Arg5,
gleamgen_ffi:identity(_pipe@4)
end,
begin
_pipe@5 = Arg6,
gleamgen_ffi:identity(_pipe@5)
end]},
gleamgen@types:tuple6(
type_(Arg1),
type_(Arg2),
type_(Arg3),
type_(Arg4),
type_(Arg5),
type_(Arg6)
)}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 200).
-spec tuple7(
expression(GZP),
expression(GZR),
expression(GZT),
expression(GZV),
expression(GZX),
expression(GZZ),
expression(HAB)
) -> expression({GZP, GZR, GZT, GZV, GZX, GZZ, HAB}).
tuple7(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7) ->
{expression,
{tuple_literal,
[begin
_pipe = Arg1,
gleamgen_ffi:identity(_pipe)
end,
begin
_pipe@1 = Arg2,
gleamgen_ffi:identity(_pipe@1)
end,
begin
_pipe@2 = Arg3,
gleamgen_ffi:identity(_pipe@2)
end,
begin
_pipe@3 = Arg4,
gleamgen_ffi:identity(_pipe@3)
end,
begin
_pipe@4 = Arg5,
gleamgen_ffi:identity(_pipe@4)
end,
begin
_pipe@5 = Arg6,
gleamgen_ffi:identity(_pipe@5)
end,
begin
_pipe@6 = Arg7,
gleamgen_ffi:identity(_pipe@6)
end]},
gleamgen@types:tuple7(
type_(Arg1),
type_(Arg2),
type_(Arg3),
type_(Arg4),
type_(Arg5),
type_(Arg6),
type_(Arg7)
)}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 231).
-spec tuple8(
expression(HAE),
expression(HAG),
expression(HAI),
expression(HAK),
expression(HAM),
expression(HAO),
expression(HAQ),
expression(HAS)
) -> expression({HAE, HAG, HAI, HAK, HAM, HAO, HAQ, HAS}).
tuple8(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8) ->
{expression,
{tuple_literal,
[begin
_pipe = Arg1,
gleamgen_ffi:identity(_pipe)
end,
begin
_pipe@1 = Arg2,
gleamgen_ffi:identity(_pipe@1)
end,
begin
_pipe@2 = Arg3,
gleamgen_ffi:identity(_pipe@2)
end,
begin
_pipe@3 = Arg4,
gleamgen_ffi:identity(_pipe@3)
end,
begin
_pipe@4 = Arg5,
gleamgen_ffi:identity(_pipe@4)
end,
begin
_pipe@5 = Arg6,
gleamgen_ffi:identity(_pipe@5)
end,
begin
_pipe@6 = Arg7,
gleamgen_ffi:identity(_pipe@6)
end,
begin
_pipe@7 = Arg8,
gleamgen_ffi:identity(_pipe@7)
end]},
gleamgen@types:tuple8(
type_(Arg1),
type_(Arg2),
type_(Arg3),
type_(Arg4),
type_(Arg5),
type_(Arg6),
type_(Arg7),
type_(Arg8)
)}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 265).
-spec tuple9(
expression(HAV),
expression(HAX),
expression(HAZ),
expression(HBB),
expression(HBD),
expression(HBF),
expression(HBH),
expression(HBJ),
expression(HBL)
) -> expression({HAV, HAX, HAZ, HBB, HBD, HBF, HBH, HBJ, HBL}).
tuple9(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Arg9) ->
{expression,
{tuple_literal,
[begin
_pipe = Arg1,
gleamgen_ffi:identity(_pipe)
end,
begin
_pipe@1 = Arg2,
gleamgen_ffi:identity(_pipe@1)
end,
begin
_pipe@2 = Arg3,
gleamgen_ffi:identity(_pipe@2)
end,
begin
_pipe@3 = Arg4,
gleamgen_ffi:identity(_pipe@3)
end,
begin
_pipe@4 = Arg5,
gleamgen_ffi:identity(_pipe@4)
end,
begin
_pipe@5 = Arg6,
gleamgen_ffi:identity(_pipe@5)
end,
begin
_pipe@6 = Arg7,
gleamgen_ffi:identity(_pipe@6)
end,
begin
_pipe@7 = Arg8,
gleamgen_ffi:identity(_pipe@7)
end,
begin
_pipe@8 = Arg9,
gleamgen_ffi:identity(_pipe@8)
end]},
gleamgen@types:tuple9(
type_(Arg1),
type_(Arg2),
type_(Arg3),
type_(Arg4),
type_(Arg5),
type_(Arg6),
type_(Arg7),
type_(Arg8),
type_(Arg9)
)}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 355).
-spec ok(expression(HCC)) -> expression({ok, HCC} | {error, any()}).
ok(Ok_value) ->
{expression,
{call,
unchecked_ident(<<"Ok"/utf8>>),
[begin
_pipe = Ok_value,
gleamgen_ffi:identity(_pipe)
end]},
gleamgen@types:result(type_(Ok_value), gleamgen@types:unchecked())}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 362).
-spec error(expression(HCI)) -> expression({ok, any()} | {error, HCI}).
error(Err_value) ->
{expression,
{call,
unchecked_ident(<<"Error"/utf8>>),
[begin
_pipe = Err_value,
gleamgen_ffi:identity(_pipe)
end]},
gleamgen@types:result(gleamgen@types:unchecked(), type_(Err_value))}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 424).
-spec call0(expression(fun(() -> HCU))) -> expression(HCU).
call0(Func) ->
{expression,
{call,
begin
_pipe = Func,
gleamgen_ffi:identity(_pipe)
end,
[]},
gleamgen@types:unchecked()}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 430).
-spec call1(expression(fun((HCX) -> HCY)), expression(HCX)) -> expression(HCY).
call1(Func, Arg1) ->
{expression,
{call,
begin
_pipe = Func,
gleamgen_ffi:identity(_pipe)
end,
[begin
_pipe@1 = Arg1,
gleamgen_ffi:identity(_pipe@1)
end]},
gleamgen@types:unchecked()}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 445).
-spec call2(
expression(fun((HDC, HDD) -> HDE)),
expression(HDC),
expression(HDD)
) -> expression(HDE).
call2(Func, Arg1, Arg2) ->
{expression,
{call,
begin
_pipe = Func,
gleamgen_ffi:identity(_pipe)
end,
[begin
_pipe@1 = Arg1,
gleamgen_ffi:identity(_pipe@1)
end,
begin
_pipe@2 = Arg2,
gleamgen_ffi:identity(_pipe@2)
end]},
gleamgen@types:unchecked()}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 461).
-spec call3(
expression(fun((HDJ, HDK, HDL) -> HDM)),
expression(HDJ),
expression(HDK),
expression(HDL)
) -> expression(HDM).
call3(Func, Arg1, Arg2, Arg3) ->
{expression,
{call,
begin
_pipe = Func,
gleamgen_ffi:identity(_pipe)
end,
[begin
_pipe@1 = Arg1,
gleamgen_ffi:identity(_pipe@1)
end,
begin
_pipe@2 = Arg2,
gleamgen_ffi:identity(_pipe@2)
end,
begin
_pipe@3 = Arg3,
gleamgen_ffi:identity(_pipe@3)
end]},
gleamgen@types:unchecked()}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 479).
-spec call4(
expression(fun((HDS, HDT, HDU, HDV) -> HDW)),
expression(HDS),
expression(HDT),
expression(HDU),
expression(HDV)
) -> expression(HDW).
call4(Func, Arg1, Arg2, Arg3, Arg4) ->
{expression,
{call,
begin
_pipe = Func,
gleamgen_ffi:identity(_pipe)
end,
[begin
_pipe@1 = Arg1,
gleamgen_ffi:identity(_pipe@1)
end,
begin
_pipe@2 = Arg2,
gleamgen_ffi:identity(_pipe@2)
end,
begin
_pipe@3 = Arg3,
gleamgen_ffi:identity(_pipe@3)
end,
begin
_pipe@4 = Arg4,
gleamgen_ffi:identity(_pipe@4)
end]},
gleamgen@types:unchecked()}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 499).
-spec call5(
expression(fun((HED, HEE, HEF, HEG, HEH) -> HEI)),
expression(HED),
expression(HEE),
expression(HEF),
expression(HEG),
expression(HEH)
) -> expression(HEI).
call5(Func, Arg1, Arg2, Arg3, Arg4, Arg5) ->
{expression,
{call,
begin
_pipe = Func,
gleamgen_ffi:identity(_pipe)
end,
[begin
_pipe@1 = Arg1,
gleamgen_ffi:identity(_pipe@1)
end,
begin
_pipe@2 = Arg2,
gleamgen_ffi:identity(_pipe@2)
end,
begin
_pipe@3 = Arg3,
gleamgen_ffi:identity(_pipe@3)
end,
begin
_pipe@4 = Arg4,
gleamgen_ffi:identity(_pipe@4)
end,
begin
_pipe@5 = Arg5,
gleamgen_ffi:identity(_pipe@5)
end]},
gleamgen@types:unchecked()}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 521).
-spec call6(
expression(fun((HEQ, HER, HES, HET, HEU, HEV) -> HEW)),
expression(HEQ),
expression(HER),
expression(HES),
expression(HET),
expression(HEU),
expression(HEV)
) -> expression(HEW).
call6(Func, Arg1, Arg2, Arg3, Arg4, Arg5, Arg6) ->
{expression,
{call,
begin
_pipe = Func,
gleamgen_ffi:identity(_pipe)
end,
[begin
_pipe@1 = Arg1,
gleamgen_ffi:identity(_pipe@1)
end,
begin
_pipe@2 = Arg2,
gleamgen_ffi:identity(_pipe@2)
end,
begin
_pipe@3 = Arg3,
gleamgen_ffi:identity(_pipe@3)
end,
begin
_pipe@4 = Arg4,
gleamgen_ffi:identity(_pipe@4)
end,
begin
_pipe@5 = Arg5,
gleamgen_ffi:identity(_pipe@5)
end,
begin
_pipe@6 = Arg6,
gleamgen_ffi:identity(_pipe@6)
end]},
gleamgen@types:unchecked()}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 545).
-spec call7(
expression(fun((HFF, HFG, HFH, HFI, HFJ, HFK, HFL) -> HFM)),
expression(HFF),
expression(HFG),
expression(HFH),
expression(HFI),
expression(HFJ),
expression(HFK),
expression(HFL)
) -> expression(HFM).
call7(Func, Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7) ->
{expression,
{call,
begin
_pipe = Func,
gleamgen_ffi:identity(_pipe)
end,
[begin
_pipe@1 = Arg1,
gleamgen_ffi:identity(_pipe@1)
end,
begin
_pipe@2 = Arg2,
gleamgen_ffi:identity(_pipe@2)
end,
begin
_pipe@3 = Arg3,
gleamgen_ffi:identity(_pipe@3)
end,
begin
_pipe@4 = Arg4,
gleamgen_ffi:identity(_pipe@4)
end,
begin
_pipe@5 = Arg5,
gleamgen_ffi:identity(_pipe@5)
end,
begin
_pipe@6 = Arg6,
gleamgen_ffi:identity(_pipe@6)
end,
begin
_pipe@7 = Arg7,
gleamgen_ffi:identity(_pipe@7)
end]},
gleamgen@types:unchecked()}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 571).
-spec call8(
expression(fun((HFW, HFX, HFY, HFZ, HGA, HGB, HGC, HGD) -> HGE)),
expression(HFW),
expression(HFX),
expression(HFY),
expression(HFZ),
expression(HGA),
expression(HGB),
expression(HGC),
expression(HGD)
) -> expression(HGE).
call8(Func, Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8) ->
{expression,
{call,
begin
_pipe = Func,
gleamgen_ffi:identity(_pipe)
end,
[begin
_pipe@1 = Arg1,
gleamgen_ffi:identity(_pipe@1)
end,
begin
_pipe@2 = Arg2,
gleamgen_ffi:identity(_pipe@2)
end,
begin
_pipe@3 = Arg3,
gleamgen_ffi:identity(_pipe@3)
end,
begin
_pipe@4 = Arg4,
gleamgen_ffi:identity(_pipe@4)
end,
begin
_pipe@5 = Arg5,
gleamgen_ffi:identity(_pipe@5)
end,
begin
_pipe@6 = Arg6,
gleamgen_ffi:identity(_pipe@6)
end,
begin
_pipe@7 = Arg7,
gleamgen_ffi:identity(_pipe@7)
end,
begin
_pipe@8 = Arg8,
gleamgen_ffi:identity(_pipe@8)
end]},
gleamgen@types:unchecked()}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 599).
-spec call9(
expression(fun((HGP, HGQ, HGR, HGS, HGT, HGU, HGV, HGW, HGX) -> HGY)),
expression(HGP),
expression(HGQ),
expression(HGR),
expression(HGS),
expression(HGT),
expression(HGU),
expression(HGV),
expression(HGW),
expression(HGX)
) -> expression(HGY).
call9(Func, Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Arg9) ->
{expression,
{call,
begin
_pipe = Func,
gleamgen_ffi:identity(_pipe)
end,
[begin
_pipe@1 = Arg1,
gleamgen_ffi:identity(_pipe@1)
end,
begin
_pipe@2 = Arg2,
gleamgen_ffi:identity(_pipe@2)
end,
begin
_pipe@3 = Arg3,
gleamgen_ffi:identity(_pipe@3)
end,
begin
_pipe@4 = Arg4,
gleamgen_ffi:identity(_pipe@4)
end,
begin
_pipe@5 = Arg5,
gleamgen_ffi:identity(_pipe@5)
end,
begin
_pipe@6 = Arg6,
gleamgen_ffi:identity(_pipe@6)
end,
begin
_pipe@7 = Arg7,
gleamgen_ffi:identity(_pipe@7)
end,
begin
_pipe@8 = Arg8,
gleamgen_ffi:identity(_pipe@8)
end,
begin
_pipe@9 = Arg9,
gleamgen_ffi:identity(_pipe@9)
end]},
gleamgen@types:unchecked()}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 639).
-spec construct0(expression(fun(() -> HHO))) -> expression(HHO).
construct0(Constructor) ->
{expression,
{single_constructor,
begin
_pipe = Constructor,
gleamgen_ffi:identity(_pipe)
end},
gleamgen@types:unchecked()}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 690).
-spec unsafe_from_unchecked(expression(any())) -> expression(any()).
unsafe_from_unchecked(Type_) ->
gleamgen_ffi:identity(Type_).
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 955).
-spec render_attribute(
{binary(), gleamgen@types:generated_type(any())},
gleamgen@render:context()
) -> glam@doc:document().
render_attribute(X, Context) ->
case erlang:element(2, Context) of
true ->
glam@doc:concat(
[glam@doc:from_string(erlang:element(1, X)),
case gleamgen@types:render_type(erlang:element(2, X)) of
{ok, Rendered} ->
glam@doc:concat(
[glam@doc:from_string(<<":"/utf8>>),
{break, <<" "/utf8>>, <<""/utf8>>},
erlang:element(2, Rendered)]
);
{error, nil} ->
{concat, []}
end]
);
false ->
glam@doc:from_string(erlang:element(1, X))
end.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 789).
-spec render_panicking_expression(binary(), gleam@option:option(binary())) -> glam@doc:document().
render_panicking_expression(Name, As_string) ->
case As_string of
{some, Value} ->
_pipe = glam@doc:concat(
[glam@doc:from_string(<<Name/binary, " as"/utf8>>),
{break, <<" "/utf8>>, <<""/utf8>>},
gleamgen@render:escape_string(Value)]
),
glam@doc:group(_pipe);
none ->
glam@doc:from_string(Name)
end.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 705).
-spec render(expression(any()), gleamgen@render:context()) -> gleamgen@render:rendered().
render(Expression, Context) ->
case erlang:element(2, Expression) of
{int_literal, Value} ->
_pipe = Value,
_pipe@1 = gleam@int:to_string(_pipe),
_pipe@2 = glam@doc:from_string(_pipe@1),
{render, _pipe@2, {rendered_details, []}};
{float_literal, Value@1} ->
_pipe@3 = Value@1,
_pipe@4 = gleam@float:to_string(_pipe@3),
_pipe@5 = glam@doc:from_string(_pipe@4),
{render, _pipe@5, {rendered_details, []}};
{str_literal, Value@2} ->
_pipe@6 = gleamgen@render:escape_string(Value@2),
{render, _pipe@6, {rendered_details, []}};
{bool_literal, true} ->
_pipe@7 = glam@doc:from_string(<<"True"/utf8>>),
{render, _pipe@7, {rendered_details, []}};
{bool_literal, false} ->
_pipe@8 = glam@doc:from_string(<<"False"/utf8>>),
{render, _pipe@8, {rendered_details, []}};
nil_literal ->
_pipe@9 = glam@doc:from_string(<<"Nil"/utf8>>),
{render, _pipe@9, {rendered_details, []}};
{list_literal, Values, Initial_list} ->
render_list(Values, Initial_list, Context);
{tuple_literal, Values@1} ->
render_tuple(Values@1, Context);
{ident, Value@3} ->
Used_imports = case gleam@string:split_once(Value@3, <<"."/utf8>>) of
{ok, {Module, _}} ->
[Module];
{error, nil} ->
[]
end,
_pipe@10 = glam@doc:from_string(Value@3),
{render, _pipe@10, {rendered_details, Used_imports}};
{todo, As_string} ->
_pipe@11 = render_panicking_expression(<<"todo"/utf8>>, As_string),
{render, _pipe@11, {rendered_details, []}};
{panic, As_string@1} ->
_pipe@12 = render_panicking_expression(
<<"panic"/utf8>>,
As_string@1
),
{render, _pipe@12, {rendered_details, []}};
{concat_string, Expr1, Expr2} ->
render_operator(
Expr1,
Expr2,
glam@doc:from_string(<<"<>"/utf8>>),
Context
);
{math_operator, Expr1@1, Op, Expr2@1} ->
render_operator(Expr1@1, Expr2@1, case Op of
add ->
glam@doc:from_string(<<"+"/utf8>>);
sub ->
glam@doc:from_string(<<"-"/utf8>>);
mul ->
glam@doc:from_string(<<"*"/utf8>>);
'div' ->
glam@doc:from_string(<<"/"/utf8>>);
greater_than ->
glam@doc:from_string(<<">"/utf8>>);
greater_than_or_equal ->
glam@doc:from_string(<<">="/utf8>>);
less_than ->
glam@doc:from_string(<<"<"/utf8>>);
less_than_or_equal ->
glam@doc:from_string(<<"<="/utf8>>)
end, Context);
{math_operator_float, Expr1@2, Op@1, Expr2@2} ->
render_operator(Expr1@2, Expr2@2, case Op@1 of
add ->
glam@doc:from_string(<<"+."/utf8>>);
sub ->
glam@doc:from_string(<<"-."/utf8>>);
mul ->
glam@doc:from_string(<<"*."/utf8>>);
'div' ->
glam@doc:from_string(<<"/."/utf8>>);
greater_than ->
glam@doc:from_string(<<">."/utf8>>);
greater_than_or_equal ->
glam@doc:from_string(<<">=."/utf8>>);
less_than ->
glam@doc:from_string(<<"<."/utf8>>);
less_than_or_equal ->
glam@doc:from_string(<<"<=."/utf8>>)
end, Context);
{call, Func, Args} ->
render_call(Func, Args, Context);
{single_constructor, Constructor} ->
render_constructor(Constructor, Context);
{block, Expressions} ->
render_block(Expressions, Context);
{equals, Expr1@3, Expr2@3} ->
render_operator(
Expr1@3,
Expr2@3,
glam@doc:from_string(<<"=="/utf8>>),
Context
);
{'case', To_match_on, Matchers} ->
render_case(To_match_on, Matchers, Context)
end.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 802).
-spec render_case(
expression(gleamgen@types:unchecked()),
list(fun((gleamgen@render:context()) -> gleamgen@render:rendered())),
gleamgen@render:context()
) -> gleamgen@render:rendered().
render_case(To_match_on, Matchers, Context) ->
Rendered_match_on = render(To_match_on, Context),
Matchers@1 = gleam@list:map(Matchers, fun(M) -> M(Context) end),
Matcher_details = gleam@list:fold(
begin
_pipe = Matchers@1,
gleam@list:map(_pipe, fun(M@1) -> erlang:element(3, M@1) end)
end,
{rendered_details, []},
fun gleamgen@render:merge_details/2
),
_pipe@3 = glam@doc:concat(
[glam@doc:from_string(<<"case "/utf8>>),
erlang:element(2, Rendered_match_on),
{break, <<" "/utf8>>, <<""/utf8>>},
gleamgen@render:body(
begin
_pipe@1 = Matchers@1,
_pipe@2 = gleam@list:map(
_pipe@1,
fun(M@2) -> erlang:element(2, M@2) end
),
glam@doc:join(_pipe@2, {line, 1})
end,
true
)]
),
{render,
_pipe@3,
{rendered_details,
lists:append(
erlang:element(2, erlang:element(3, Rendered_match_on)),
erlang:element(2, Matcher_details)
)}}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 869).
-spec render_statement(statement(), gleamgen@render:context()) -> gleamgen@render:rendered().
render_statement(Statement, Context) ->
case Statement of
{let_declaration, Variable, Value} ->
Rendered_value = render(Value, Context),
_pipe = glam@doc:concat(
[glam@doc:from_string(<<"let "/utf8>>),
glam@doc:from_string(Variable),
{break, <<" "/utf8>>, <<""/utf8>>},
glam@doc:from_string(<<"="/utf8>>),
{break, <<" "/utf8>>, <<""/utf8>>},
erlang:element(2, Rendered_value)]
),
{render, _pipe, erlang:element(3, Rendered_value)};
{expression_statement, Expr} ->
render(Expr, Context)
end.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 887).
-spec render_block(list(statement()), gleamgen@render:context()) -> gleamgen@render:rendered().
render_block(Statements, Context) ->
{Inner_statements, Details} = gleam@list:fold(
Statements,
{[], {rendered_details, []}},
fun(Acc, Statement) ->
Rendered = render_statement(
Statement,
erlang:setelement(3, Context, true)
),
{[erlang:element(2, Rendered) | erlang:element(1, Acc)],
gleamgen@render:merge_details(
erlang:element(3, Rendered),
erlang:element(2, Acc)
)}
end
),
Inner = begin
_pipe = Inner_statements,
_pipe@1 = lists:reverse(_pipe),
glam@doc:join(_pipe@1, {line, 1})
end,
_pipe@2 = case erlang:element(3, Context) of
true ->
gleamgen@render:body(Inner, true);
false ->
Inner
end,
{render, _pipe@2, Details}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 910).
-spec render_expressions(list(expression(any())), gleamgen@render:context()) -> {list(glam@doc:document()),
gleamgen@render:rendered_details()}.
render_expressions(Expressions, Context) ->
{Rendered@1, Details} = gleam@list:fold(
Expressions,
{[], {rendered_details, []}},
fun(Acc, Expr) ->
Rendered = render(Expr, Context),
{[erlang:element(2, Rendered) | erlang:element(1, Acc)],
gleamgen@render:merge_details(
erlang:element(3, Rendered),
erlang:element(2, Acc)
)}
end
),
{begin
_pipe = Rendered@1,
lists:reverse(_pipe)
end,
Details}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 830).
-spec render_tuple(
list(expression(gleamgen@types:unchecked())),
gleamgen@render:context()
) -> gleamgen@render:rendered().
render_tuple(Values, Context) ->
{Rendered_values, Details} = render_expressions(Values, Context),
_pipe = Rendered_values,
_pipe@1 = gleamgen@render:pretty_list(_pipe),
_pipe@2 = glam@doc:prepend(_pipe@1, glam@doc:from_string(<<"#"/utf8>>)),
{render, _pipe@2, Details}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 838).
-spec render_list(
list(expression(gleamgen@types:unchecked())),
gleam@option:option(expression(gleamgen@types:unchecked())),
gleamgen@render:context()
) -> gleamgen@render:rendered().
render_list(Values, Initial_list, Context) ->
Comma = glam@doc:concat(
[glam@doc:from_string(<<","/utf8>>), {break, <<" "/utf8>>, <<""/utf8>>}]
),
{Ending, Trailing_comma} = case Initial_list of
{some, Initial} ->
{glam@doc:concat(
[glam@doc:from_string(<<","/utf8>>),
{break, <<" "/utf8>>, <<""/utf8>>},
glam@doc:from_string(<<".."/utf8>>),
erlang:element(2, render(Initial, Context))]
),
{break, <<""/utf8>>, <<""/utf8>>}};
none ->
{{concat, []}, glam@doc:break(<<""/utf8>>, <<","/utf8>>)}
end,
Open_bracket = glam@doc:concat(
[glam@doc:from_string(<<"["/utf8>>), {break, <<""/utf8>>, <<""/utf8>>}]
),
Close_bracket = glam@doc:concat(
[Trailing_comma, glam@doc:from_string(<<"]"/utf8>>)]
),
{Rendered_values, Details} = render_expressions(Values, Context),
_pipe = Rendered_values,
_pipe@1 = glam@doc:join(_pipe, Comma),
_pipe@2 = glam@doc:prepend(_pipe@1, Open_bracket),
_pipe@3 = glam@doc:append(_pipe@2, Ending),
_pipe@4 = glam@doc:nest(_pipe@3, 2),
_pipe@5 = glam@doc:append(_pipe@4, Close_bracket),
_pipe@6 = glam@doc:group(_pipe@5),
{render, _pipe@6, Details}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 922).
-spec render_call(
expression(gleamgen@types:unchecked()),
list(expression(gleamgen@types:unchecked())),
gleamgen@render:context()
) -> gleamgen@render:rendered().
render_call(Func, Args, Context) ->
{Rendered_args, Details} = render_expressions(Args, Context),
Caller = render(Func, Context),
_pipe = glam@doc:concat(
[erlang:element(2, Caller), gleamgen@render:pretty_list(Rendered_args)]
),
{render,
_pipe,
gleamgen@render:merge_details(Details, erlang:element(3, Caller))}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 929).
-spec render_constructor(
expression(gleamgen@types:unchecked()),
gleamgen@render:context()
) -> gleamgen@render:rendered().
render_constructor(Func, Context) ->
render(Func, Context).
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 933).
-spec render_operator(
expression(HJN),
expression(HJN),
glam@doc:document(),
gleamgen@render:context()
) -> gleamgen@render:rendered().
render_operator(Expr1, Expr2, Rendered_op, Context) ->
First_rendered = render(Expr1, Context),
Second_rendered = render(Expr2, Context),
_pipe = glam@doc:concat(
[erlang:element(2, First_rendered),
{break, <<" "/utf8>>, <<""/utf8>>},
Rendered_op,
{break, <<" "/utf8>>, <<""/utf8>>},
erlang:element(2, Second_rendered)]
),
{render,
_pipe,
gleamgen@render:merge_details(
erlang:element(3, First_rendered),
erlang:element(3, Second_rendered)
)}.