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, 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, tuple1/1, tuple2/2, tuple3/3, tuple4/4, tuple5/5, tuple6/6, tuple7/7, tuple8/8, tuple9/9, call0/1, call1/2, call2/3, call3/4, call4/5, call5/6, call6/7, call7/8, call8/9, call9/10, 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(GTP) :: {expression,
internal_expression(GTP),
gleamgen@types:generated_type(GTP)}.
-type internal_expression(GTQ) :: {int_literal, integer()} |
{float_literal, float()} |
{str_literal, binary()} |
{bool_literal, boolean()} |
nil_literal |
{list_literal, list(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()))} |
{block, list(statement())} |
{'case', expression(gleamgen@types:unchecked()), list(glam@doc:document())} |
{gleam_phantom, GTQ}.
-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", 40).
-spec int(integer()) -> expression(integer()).
int(Value) ->
{expression, {int_literal, Value}, gleamgen@types:int()}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 44).
-spec float(float()) -> expression(float()).
float(Value) ->
{expression, {float_literal, Value}, gleamgen@types:float()}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 48).
-spec string(binary()) -> expression(binary()).
string(Value) ->
{expression, {str_literal, Value}, gleamgen@types:string()}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 52).
-spec bool(boolean()) -> expression(boolean()).
bool(Value) ->
{expression, {bool_literal, Value}, gleamgen@types:bool()}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 56).
-spec nil() -> expression(nil).
nil() ->
{expression, nil_literal, gleamgen@types:nil()}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 277).
-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", 288).
-spec concat_string(expression(binary()), expression(binary())) -> expression(binary()).
concat_string(Expr1, Expr2) ->
{expression, {concat_string, Expr1, Expr2}, gleamgen@types:string()}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 302).
-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", 313).
-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", 336).
-spec math_operator(
expression(integer()),
math_operator(),
expression(integer())
) -> expression(integer()).
math_operator(Expr1, Op, Expr2) ->
{expression, {math_operator, Expr1, Op, Expr2}, gleamgen@types:int()}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 355).
-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}, gleamgen@types:int()}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 580).
-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", 588).
-spec new_block(list(statement()), gleamgen@types:generated_type(HDJ)) -> expression(HDJ).
new_block(Expressions, Return) ->
{expression, {block, Expressions}, Return}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 593).
-spec new_case(
expression(gleamgen@types:unchecked()),
list(glam@doc:document()),
gleamgen@types:generated_type(HDO)
) -> expression(HDO).
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", 598).
-spec type_(expression(HDQ)) -> gleamgen@types:generated_type(HDQ).
type_(Expr) ->
erlang:element(3, Expr).
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 608).
-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", 60).
-spec list(list(expression(GTW))) -> expression(list(GTW)).
list(Value) ->
{expression,
{list_literal,
begin
_pipe = Value,
gleam@list:map(_pipe, fun gleamgen_ffi:identity/1)
end},
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", 71).
-spec tuple1(expression(GUB)) -> expression({GUB}).
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", 78).
-spec tuple2(expression(GUE), expression(GUG)) -> expression({GUE, GUG}).
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", 85).
-spec tuple3(expression(GUJ), expression(GUL), expression(GUN)) -> expression({GUJ,
GUL,
GUN}).
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", 100).
-spec tuple4(expression(GUQ), expression(GUS), expression(GUU), expression(GUW)) -> expression({GUQ,
GUS,
GUU,
GUW}).
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", 117).
-spec tuple5(
expression(GUZ),
expression(GVB),
expression(GVD),
expression(GVF),
expression(GVH)
) -> expression({GUZ, GVB, GVD, GVF, GVH}).
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", 142).
-spec tuple6(
expression(GVK),
expression(GVM),
expression(GVO),
expression(GVQ),
expression(GVS),
expression(GVU)
) -> expression({GVK, GVM, GVO, GVQ, GVS, GVU}).
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", 170).
-spec tuple7(
expression(GVX),
expression(GVZ),
expression(GWB),
expression(GWD),
expression(GWF),
expression(GWH),
expression(GWJ)
) -> expression({GVX, GVZ, GWB, GWD, GWF, GWH, GWJ}).
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", 201).
-spec tuple8(
expression(GWM),
expression(GWO),
expression(GWQ),
expression(GWS),
expression(GWU),
expression(GWW),
expression(GWY),
expression(GXA)
) -> expression({GWM, GWO, GWQ, GWS, GWU, GWW, GWY, GXA}).
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", 235).
-spec tuple9(
expression(GXD),
expression(GXF),
expression(GXH),
expression(GXJ),
expression(GXL),
expression(GXN),
expression(GXP),
expression(GXR),
expression(GXT)
) -> expression({GXD, GXF, GXH, GXJ, GXL, GXN, GXP, GXR, GXT}).
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", 372).
-spec call0(expression(fun(() -> GYN))) -> expression(GYN).
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", 378).
-spec call1(expression(fun((GYQ) -> GYR)), expression(GYQ)) -> expression(GYR).
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", 393).
-spec call2(
expression(fun((GYV, GYW) -> GYX)),
expression(GYV),
expression(GYW)
) -> expression(GYX).
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", 409).
-spec call3(
expression(fun((GZC, GZD, GZE) -> GZF)),
expression(GZC),
expression(GZD),
expression(GZE)
) -> expression(GZF).
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", 427).
-spec call4(
expression(fun((GZL, GZM, GZN, GZO) -> GZP)),
expression(GZL),
expression(GZM),
expression(GZN),
expression(GZO)
) -> expression(GZP).
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", 447).
-spec call5(
expression(fun((GZW, GZX, GZY, GZZ, HAA) -> HAB)),
expression(GZW),
expression(GZX),
expression(GZY),
expression(GZZ),
expression(HAA)
) -> expression(HAB).
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", 469).
-spec call6(
expression(fun((HAJ, HAK, HAL, HAM, HAN, HAO) -> HAP)),
expression(HAJ),
expression(HAK),
expression(HAL),
expression(HAM),
expression(HAN),
expression(HAO)
) -> expression(HAP).
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", 493).
-spec call7(
expression(fun((HAY, HAZ, HBA, HBB, HBC, HBD, HBE) -> HBF)),
expression(HAY),
expression(HAZ),
expression(HBA),
expression(HBB),
expression(HBC),
expression(HBD),
expression(HBE)
) -> expression(HBF).
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", 519).
-spec call8(
expression(fun((HBP, HBQ, HBR, HBS, HBT, HBU, HBV, HBW) -> HBX)),
expression(HBP),
expression(HBQ),
expression(HBR),
expression(HBS),
expression(HBT),
expression(HBU),
expression(HBV),
expression(HBW)
) -> expression(HBX).
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", 547).
-spec call9(
expression(fun((HCI, HCJ, HCK, HCL, HCM, HCN, HCO, HCP, HCQ) -> HCR)),
expression(HCI),
expression(HCJ),
expression(HCK),
expression(HCL),
expression(HCM),
expression(HCN),
expression(HCO),
expression(HCP),
expression(HCQ)
) -> expression(HCR).
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", 613).
-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", 690).
-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>>},
glam@doc:from_string(<<"\""/utf8>>),
glam@doc:from_string(Value),
glam@doc:from_string(<<"\""/utf8>>)]
),
glam@doc:group(_pipe);
none ->
glam@doc:from_string(Name)
end.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 797).
-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", 705).
-spec render_case(
expression(gleamgen@types:unchecked()),
list(glam@doc:document()),
gleamgen@render:context()
) -> glam@doc:document().
render_case(To_match_on, Matchers, Context) ->
glam@doc:concat(
[glam@doc:from_string(<<"case "/utf8>>),
erlang:element(2, render(To_match_on, Context)),
{break, <<" "/utf8>>, <<""/utf8>>},
gleamgen@render:body(
begin
_pipe = Matchers,
glam@doc:join(_pipe, {line, 1})
end,
true
)]
).
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 628).
-spec render(expression(any()), gleamgen@render:context()) -> gleamgen@render:rendered().
render(Expression, Context) ->
_pipe@4 = case erlang:element(2, Expression) of
{int_literal, Value} ->
_pipe = Value,
_pipe@1 = gleam@int:to_string(_pipe),
glam@doc:from_string(_pipe@1);
{float_literal, Value@1} ->
_pipe@2 = Value@1,
_pipe@3 = gleam@float:to_string(_pipe@2),
glam@doc:from_string(_pipe@3);
{str_literal, Value@2} ->
glam@doc:concat(
[glam@doc:from_string(<<"\""/utf8>>),
glam@doc:from_string(Value@2),
glam@doc:from_string(<<"\""/utf8>>)]
);
{bool_literal, true} ->
glam@doc:from_string(<<"True"/utf8>>);
{bool_literal, false} ->
glam@doc:from_string(<<"False"/utf8>>);
nil_literal ->
glam@doc:from_string(<<"Nil"/utf8>>);
{list_literal, Values} ->
render_list(Values, Context);
{tuple_literal, Values@1} ->
render_tuple(Values@1, Context);
{ident, Value@3} ->
glam@doc:from_string(Value@3);
{todo, As_string} ->
render_panicking_expression(<<"todo"/utf8>>, As_string);
{panic, As_string@1} ->
render_panicking_expression(<<"panic"/utf8>>, As_string@1);
{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);
{block, Expressions} ->
render_block(Expressions, Context);
{'case', To_match_on, Matchers} ->
render_case(To_match_on, Matchers, Context)
end,
{render, _pipe@4}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 718).
-spec render_tuple(
list(expression(gleamgen@types:unchecked())),
gleamgen@render:context()
) -> glam@doc:document().
render_tuple(Values, Context) ->
_pipe = Values,
_pipe@1 = gleam@list:map(
_pipe,
fun(X) -> erlang:element(2, render(X, Context)) end
),
_pipe@2 = gleamgen@render:pretty_list(_pipe@1),
glam@doc:prepend(_pipe@2, glam@doc:from_string(<<"#"/utf8>>)).
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 725).
-spec render_list(
list(expression(gleamgen@types:unchecked())),
gleamgen@render:context()
) -> glam@doc:document().
render_list(Values, Context) ->
Comma = glam@doc:concat(
[glam@doc:from_string(<<","/utf8>>), {break, <<" "/utf8>>, <<""/utf8>>}]
),
Trailing_comma = glam@doc:break(<<""/utf8>>, <<","/utf8>>),
Open_paren = glam@doc:concat(
[glam@doc:from_string(<<"["/utf8>>), {break, <<""/utf8>>, <<""/utf8>>}]
),
Close_paren = glam@doc:concat(
[Trailing_comma, glam@doc:from_string(<<"]"/utf8>>)]
),
_pipe = Values,
_pipe@1 = gleam@list:map(
_pipe,
fun(X) -> erlang:element(2, render(X, Context)) end
),
_pipe@2 = glam@doc:join(_pipe@1, Comma),
_pipe@3 = glam@doc:prepend(_pipe@2, Open_paren),
_pipe@4 = glam@doc:nest(_pipe@3, 2),
_pipe@5 = glam@doc:append(_pipe@4, Close_paren),
glam@doc:group(_pipe@5).
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 741).
-spec render_statement(statement(), gleamgen@render:context()) -> gleamgen@render:rendered().
render_statement(Statement, Context) ->
case Statement of
{let_declaration, Variable, Value} ->
_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, render(Value, Context))]
),
{render, _pipe};
{expression_statement, Expr} ->
render(Expr, Context)
end.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 757).
-spec render_block(list(statement()), gleamgen@render:context()) -> glam@doc:document().
render_block(Statements, Context) ->
Inner = begin
_pipe = Statements,
_pipe@1 = gleam@list:map(
_pipe,
fun(Statement) ->
erlang:element(
2,
render_statement(
Statement,
erlang:setelement(3, Context, true)
)
)
end
),
glam@doc:join(_pipe@1, {line, 1})
end,
case erlang:element(3, Context) of
true ->
gleamgen@render:body(Inner, true);
false ->
Inner
end.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 774).
-spec render_call(
expression(gleamgen@types:unchecked()),
list(expression(gleamgen@types:unchecked())),
gleamgen@render:context()
) -> glam@doc:document().
render_call(Func, Args, Context) ->
glam@doc:concat(
[erlang:element(2, render(Func, Context)),
gleamgen@render:pretty_list(
gleam@list:map(
Args,
fun(Arg) -> erlang:element(2, render(Arg, Context)) end
)
)]
).
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/expression.gleam", 781).
-spec render_operator(
expression(HEW),
expression(HEW),
glam@doc:document(),
gleamgen@render:context()
) -> glam@doc:document().
render_operator(Expr1, Expr2, Rendered_op, Context) ->
glam@doc:concat(
[erlang:element(2, render(Expr1, Context)),
{break, <<" "/utf8>>, <<""/utf8>>},
Rendered_op,
{break, <<" "/utf8>>, <<""/utf8>>},
erlang:element(2, render(Expr2, Context))]
).