-module(sketch_css@module@pipes). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]). -export([remove/1]). -file("/Users/doctor/Workspace/sketch/sketch_css/src/sketch_css/module/pipes.gleam", 31). -spec remove_statement(glance:statement()) -> glance:statement(). remove_statement(Stat) -> case Stat of {use, _, _} -> erlang:setelement(3, Stat, remove_expr(erlang:element(3, Stat))); {expression, E} -> {expression, remove_expr(E)}; {assignment, _, _, _, _} -> erlang:setelement(5, Stat, remove_expr(erlang:element(5, Stat))) end. -file("/Users/doctor/Workspace/sketch/sketch_css/src/sketch_css/module/pipes.gleam", 39). -spec remove_expr(glance:expression()) -> glance:expression(). remove_expr(Expr) -> case Expr of {negate_int, Expr@1} -> {negate_int, remove_expr(Expr@1)}; {negate_bool, Expr@2} -> {negate_bool, remove_expr(Expr@2)}; {block, Stat} -> {block, gleam@list:map(Stat, fun remove_statement/1)}; {todo, Stat@1} -> {todo, gleam@option:map(Stat@1, fun remove_expr/1)}; {panic, Stat@2} -> {panic, gleam@option:map(Stat@2, fun remove_expr/1)}; {tuple, Stat@3} -> {tuple, gleam@list:map(Stat@3, fun remove_expr/1)}; {fn, _, _, _} -> erlang:setelement( 4, Expr, gleam@list:map(erlang:element(4, Expr), fun remove_statement/1) ); {tuple_index, _, _} -> erlang:setelement(2, Expr, remove_expr(erlang:element(2, Expr))); {list, Elements, Rest} -> Elements@1 = gleam@list:map(Elements, fun remove_expr/1), Rest@1 = gleam@option:map(Rest, fun remove_expr/1), {list, Elements@1, Rest@1}; {record_update, _, _, _, _} -> Record = remove_expr(erlang:element(4, Expr)), erlang:setelement( 5, erlang:setelement(4, Expr, Record), (gleam@list:map( erlang:element(5, Expr), fun(Field) -> Item = gleam@option:map( erlang:element(3, Field), fun remove_expr/1 ), erlang:setelement(3, Field, Item) end )) ); {field_access, _, _} -> Container = remove_expr(erlang:element(2, Expr)), erlang:setelement(2, Expr, Container); {call, _, _} -> Function = remove_expr(erlang:element(2, Expr)), {call, Function, (gleam@list:map( erlang:element(3, Expr), fun(Argument) -> remove_expr_field(Argument) end ))}; {'case', _, _} -> Subjects = gleam@list:map( erlang:element(2, Expr), fun remove_expr/1 ), {'case', Subjects, (gleam@list:map( erlang:element(3, Expr), fun(Clause) -> Guard = gleam@option:map( erlang:element(3, Clause), fun remove_expr/1 ), Body = remove_expr(erlang:element(4, Clause)), erlang:setelement( 4, erlang:setelement(3, Clause, Guard), Body ) end ))}; {binary_operator, pipe, Left, {call, Function@1, Arguments}} -> Left@1 = {unlabelled_field, remove_expr(Left)}, Arguments@1 = gleam@list:map(Arguments, fun remove_expr_field/1), Arguments@2 = [Left@1 | Arguments@1], {call, Function@1, Arguments@2}; {binary_operator, pipe, Left@2, {variable, Variable}} -> Left@3 = {unlabelled_field, remove_expr(Left@2)}, Arguments@3 = [Left@3], Function@2 = {variable, Variable}, {call, Function@2, Arguments@3}; {binary_operator, pipe, Left@4, Right} -> Left@5 = remove_expr(Left@4), Right@1 = remove_expr(Right), {call, Right@1, [{unlabelled_field, Left@5}]}; _ -> Expr end. -file("/Users/doctor/Workspace/sketch/sketch_css/src/sketch_css/module/pipes.gleam", 26). -spec remove_attribute(glance:attribute()) -> glance:attribute(). remove_attribute(Attribute) -> Arguments = gleam@list:map(erlang:element(3, Attribute), fun remove_expr/1), erlang:setelement(3, Attribute, Arguments). -file("/Users/doctor/Workspace/sketch/sketch_css/src/sketch_css/module/pipes.gleam", 7). -spec remove(glance:module_()) -> glance:module_(). remove(Module) -> erlang:setelement( 6, Module, (gleam@list:map( erlang:element(6, Module), fun(_use0) -> {definition, Attributes, Definition} = _use0, Attributes@1 = gleam@list:map( Attributes, fun remove_attribute/1 ), {definition, Attributes@1, (erlang:setelement( 6, Definition, (gleam@list:map( erlang:element(6, Definition), fun(Statement) -> remove_statement(Statement) end )) ))} end )) ). -file("/Users/doctor/Workspace/sketch/sketch_css/src/sketch_css/module/pipes.gleam", 119). -spec remove_expr_field(glance:field(glance:expression())) -> glance:field(glance:expression()). remove_expr_field(Argument) -> case Argument of {unlabelled_field, E} -> {unlabelled_field, remove_expr(E)}; {shorthand_field, Label} -> {shorthand_field, Label}; {labelled_field, Label@1, Item} -> {labelled_field, Label@1, remove_expr(Item)} end.