Lines Matching refs:Lf

107 exprs(Exprs, Bs, Lf) ->
108 exprs(Exprs, Bs, Lf, none, none).
119 exprs(Exprs, Bs, Lf, Ef) ->
120 exprs(Exprs, Bs, Lf, Ef, none).
122 exprs([E], Bs0, Lf, Ef, RBs) ->
123 expr(E, Bs0, Lf, Ef, RBs);
124 exprs([E|Es], Bs0, Lf, Ef, RBs) ->
126 {value,_V,Bs} = expr(E, Bs0, Lf, Ef, RBs1),
127 exprs(Es, Bs, Lf, Ef, RBs).
158 expr(E, Bs, Lf) ->
159 expr(E, Bs, Lf, none, none).
170 expr(E, Bs, Lf, Ef) ->
171 expr(E, Bs, Lf, Ef, none).
231 expr({cons,_,H0,T0}, Bs0, Lf, Ef, RBs) ->
232 {value,H,Bs1} = expr(H0, Bs0, Lf, Ef, none),
233 {value,T,Bs2} = expr(T0, Bs0, Lf, Ef, none),
235 expr({lc,_,E,Qs}, Bs, Lf, Ef, RBs) ->
236 eval_lc(E, Qs, Bs, Lf, Ef, RBs);
237 expr({bc,_,E,Qs}, Bs, Lf, Ef, RBs) ->
238 eval_bc(E, Qs, Bs, Lf, Ef, RBs);
239 expr({tuple,_,Es}, Bs0, Lf, Ef, RBs) ->
240 {Vs,Bs} = expr_list(Es, Bs0, Lf, Ef),
252 expr({map,_,Binding,Es}, Bs0, Lf, Ef, RBs) ->
253 {value, Map0, Bs1} = expr(Binding, Bs0, Lf, Ef, none),
254 {Vs,Bs2} = eval_map_fields(Es, Bs0, Lf, Ef),
262 expr({map,_,Es}, Bs0, Lf, Ef, RBs) ->
263 {Vs,Bs} = eval_map_fields(Es, Bs0, Lf, Ef),
268 expr({block,_,Es}, Bs, Lf, Ef, RBs) ->
269 exprs(Es, Bs, Lf, Ef, RBs);
270 expr({'if',_,Cs}, Bs, Lf, Ef, RBs) ->
271 if_clauses(Cs, Bs, Lf, Ef, RBs);
272 expr({'case',_,E,Cs}, Bs0, Lf, Ef, RBs) ->
273 {value,Val,Bs} = expr(E, Bs0, Lf, Ef, none),
274 case_clauses(Val, Cs, Bs, Lf, Ef, RBs);
275 expr({'try',_,B,Cases,Catches,AB}, Bs, Lf, Ef, RBs) ->
276 try_clauses(B, Cases, Catches, AB, Bs, Lf, Ef, RBs);
277 expr({'receive',_,Cs}, Bs, Lf, Ef, RBs) ->
278 receive_clauses(Cs, Bs, Lf, Ef, RBs);
279 expr({'receive',_, Cs, E, TB}, Bs0, Lf, Ef, RBs) ->
280 {value,T,Bs} = expr(E, Bs0, Lf, Ef, none),
281 receive_clauses(T, Cs, {TB,Bs}, Bs0, Lf, Ef, RBs);
282 expr({'fun',_Line,{function,Mod0,Name0,Arity0}}, Bs0, Lf, Ef, RBs) ->
283 {[Mod,Name,Arity],Bs} = expr_list([Mod0,Name0,Arity0], Bs0, Lf, Ef),
289 expr({'fun',Line,{clauses,Cs}} = Ex, Bs, Lf, Ef, RBs) ->
295 Info = {En,Lf,Ef,Cs},
337 expr({named_fun,Line,Name,Cs} = Ex, Bs, Lf, Ef, RBs) ->
343 Info = {En,Lf,Ef,Cs,Name},
392 Bs0, Lf, Ef, RBs) when length(As0) =< 1 ->
399 expr({call,L,Remote,[QLC1 | As0]}, Bs0, Lf, Ef, RBs);
406 Bs, Lf, Ef, RBs) when length(As0) =< 1 ->
407 expr({call,L1,{remote,L2,Mod,Func},As}, Bs, Lf, Ef, RBs);
408 expr({call,_,{remote,_,Mod,Func},As0}, Bs0, Lf, Ef, RBs) ->
409 {value,M,Bs1} = expr(Mod, Bs0, Lf, Ef, none),
410 {value,F,Bs2} = expr(Func, Bs0, Lf, Ef, none),
411 {As,Bs3} = expr_list(As0, merge_bindings(Bs1, Bs2), Lf, Ef),
419 expr({call,_,{atom,_,Func},As0}, Bs0, Lf, Ef, RBs) ->
422 {As,Bs} = expr_list(As0, Bs0, Lf, Ef),
425 local_func(Func, As0, Bs0, Lf, Ef, RBs)
427 expr({call,_,Func0,As0}, Bs0, Lf, Ef, RBs) -> % function or {Mod,Fun}
428 {value,Func,Bs1} = expr(Func0, Bs0, Lf, Ef, none),
429 {As,Bs2} = expr_list(As0, Bs1, Lf, Ef),
436 expr({'catch',_,Expr}, Bs0, Lf, Ef, RBs) ->
437 try expr(Expr, Bs0, Lf, Ef, none) of
448 expr({match,_,Lhs,Rhs0}, Bs0, Lf, Ef, RBs) ->
449 {value,Rhs,Bs1} = expr(Rhs0, Bs0, Lf, Ef, none),
455 expr({op,_,Op,A0}, Bs0, Lf, Ef, RBs) ->
456 {value,A,Bs} = expr(A0, Bs0, Lf, Ef, none),
458 expr({op,_,'andalso',L0,R0}, Bs0, Lf, Ef, RBs) ->
459 {value,L,Bs1} = expr(L0, Bs0, Lf, Ef, none),
462 {value,R,_} = expr(R0, Bs1, Lf, Ef, none),
468 expr({op,_,'orelse',L0,R0}, Bs0, Lf, Ef, RBs) ->
469 {value,L,Bs1} = expr(L0, Bs0, Lf, Ef, none),
473 {value,R,_} = expr(R0, Bs1, Lf, Ef, none),
478 expr({op,_,Op,L0,R0}, Bs0, Lf, Ef, RBs) ->
479 {value,L,Bs1} = expr(L0, Bs0, Lf, Ef, none),
480 {value,R,Bs2} = expr(R0, Bs0, Lf, Ef, none),
482 expr({bin,_,Fs}, Bs0, Lf, Ef, RBs) ->
483 EvalFun = fun(E, B) -> expr(E, B, Lf, Ef, none) end,
691 eval_lc(E, Qs, Bs, Lf, Ef, RBs) ->
692 ret_expr(lists:reverse(eval_lc1(E, Qs, Bs, Lf, Ef, [])), Bs, RBs).
694 eval_lc1(E, [{generate,_,P,L0}|Qs], Bs0, Lf, Ef, Acc0) ->
695 {value,L1,_Bs1} = expr(L0, Bs0, Lf, Ef, none),
696 CompFun = fun(Bs, Acc) -> eval_lc1(E, Qs, Bs, Lf, Ef, Acc) end,
697 eval_generate(L1, P, Bs0, Lf, Ef, CompFun, Acc0);
698 eval_lc1(E, [{b_generate,_,P,L0}|Qs], Bs0, Lf, Ef, Acc0) ->
699 {value,Bin,_Bs1} = expr(L0, Bs0, Lf, Ef, none),
700 CompFun = fun(Bs, Acc) -> eval_lc1(E, Qs, Bs, Lf, Ef, Acc) end,
701 eval_b_generate(Bin, P, Bs0, Lf, Ef, CompFun, Acc0);
702 eval_lc1(E, [F|Qs], Bs0, Lf, Ef, Acc) ->
703 CompFun = fun(Bs) -> eval_lc1(E, Qs, Bs, Lf, Ef, Acc) end,
704 eval_filter(F, Bs0, Lf, Ef, CompFun, Acc);
705 eval_lc1(E, [], Bs, Lf, Ef, Acc) ->
706 {value,V,_} = expr(E, Bs, Lf, Ef, none),
713 eval_bc(E, Qs, Bs, Lf, Ef, RBs) ->
714 ret_expr(eval_bc1(E, Qs, Bs, Lf, Ef, <<>>), Bs, RBs).
716 eval_bc1(E, [{b_generate,_,P,L0}|Qs], Bs0, Lf, Ef, Acc0) ->
717 {value,Bin,_Bs1} = expr(L0, Bs0, Lf, Ef, none),
718 CompFun = fun(Bs, Acc) -> eval_bc1(E, Qs, Bs, Lf, Ef, Acc) end,
719 eval_b_generate(Bin, P, Bs0, Lf, Ef, CompFun, Acc0);
720 eval_bc1(E, [{generate,_,P,L0}|Qs], Bs0, Lf, Ef, Acc0) ->
721 {value,List,_Bs1} = expr(L0, Bs0, Lf, Ef, none),
722 CompFun = fun(Bs, Acc) -> eval_bc1(E, Qs, Bs, Lf, Ef, Acc) end,
723 eval_generate(List, P, Bs0, Lf, Ef, CompFun, Acc0);
724 eval_bc1(E, [F|Qs], Bs0, Lf, Ef, Acc) ->
725 CompFun = fun(Bs) -> eval_bc1(E, Qs, Bs, Lf, Ef, Acc) end,
726 eval_filter(F, Bs0, Lf, Ef, CompFun, Acc);
727 eval_bc1(E, [], Bs, Lf, Ef, Acc) ->
728 {value,V,_} = expr(E, Bs, Lf, Ef, none),
731 eval_generate([V|Rest], P, Bs0, Lf, Ef, CompFun, Acc) ->
736 eval_generate(Rest, P, Bs0, Lf, Ef, CompFun, NewAcc);
738 eval_generate(Rest, P, Bs0, Lf, Ef, CompFun, Acc)
745 eval_b_generate(<<_/bitstring>>=Bin, P, Bs0, Lf, Ef, CompFun, Acc) ->
747 Efun = fun(Exp, Bs) -> expr(Exp, Bs, Lf, Ef, none) end,
752 eval_b_generate(Rest, P, Bs0, Lf, Ef, CompFun, NewAcc);
754 eval_b_generate(Rest, P, Bs0, Lf, Ef, CompFun, Acc);
761 eval_filter(F, Bs0, Lf, Ef, CompFun, Acc) ->
764 case guard_test(F, Bs0, Lf, Ef) of
769 case expr(F, Bs0, Lf, Ef, none) of
781 eval_map_fields(Fs, Bs, Lf, Ef) ->
782 eval_map_fields(Fs, Bs, Lf, Ef, []).
784 eval_map_fields([{map_field_assoc,_,K0,V0}|Fs], Bs0, Lf, Ef, Acc) ->
785 {value,K1,Bs1} = expr(K0, Bs0, Lf, Ef, none),
786 {value,V1,Bs2} = expr(V0, Bs1, Lf, Ef, none),
787 eval_map_fields(Fs, Bs2, Lf, Ef, [{map_assoc,K1,V1}|Acc]);
788 eval_map_fields([{map_field_exact,_,K0,V0}|Fs], Bs0, Lf, Ef, Acc) ->
789 {value,K1,Bs1} = expr(K0, Bs0, Lf, Ef, none),
790 {value,V1,Bs2} = expr(V0, Bs1, Lf, Ef, none),
791 eval_map_fields(Fs, Bs2, Lf, Ef, [{map_exact,K1,V1}|Acc]);
813 eval_fun(As, {Bs0,Lf,Ef,Cs}) ->
814 eval_fun(Cs, As, Bs0, Lf, Ef, value).
816 eval_fun([{clause,_,H,G,B}|Cs], As, Bs0, Lf, Ef, RBs) ->
820 case guard(G, Bs1, Lf, Ef) of
821 true -> exprs(B, Bs1, Lf, Ef, RBs);
822 false -> eval_fun(Cs, As, Bs0, Lf, Ef, RBs)
825 eval_fun(Cs, As, Bs0, Lf, Ef, RBs)
832 eval_named_fun(As, Fun, {Bs0,Lf,Ef,Cs,Name}) ->
833 eval_named_fun(Cs, As, Bs0, Lf, Ef, Name, Fun, value).
835 eval_named_fun([{clause,_,H,G,B}|Cs], As, Bs0, Lf, Ef, Name, Fun, RBs) ->
840 case guard(G, Bs2, Lf, Ef) of
841 true -> exprs(B, Bs2, Lf, Ef, RBs);
842 false -> eval_named_fun(Cs, As, Bs0, Lf, Ef, Name, Fun, RBs)
845 eval_named_fun(Cs, As, Bs0, Lf, Ef, Name, Fun, RBs)
872 expr_list(Es, Bs, Lf) ->
873 expr_list(Es, Bs, Lf, none).
884 expr_list(Es, Bs, Lf, Ef) ->
885 expr_list(Es, [], Bs, Bs, Lf, Ef).
887 expr_list([E|Es], Vs, BsOrig, Bs0, Lf, Ef) ->
888 {value,V,Bs1} = expr(E, BsOrig, Lf, Ef, none),
889 expr_list(Es, [V|Vs], BsOrig, merge_bindings(Bs1, Bs0), Lf, Ef);
901 if_clauses([{clause,_,[],G,B}|Cs], Bs, Lf, Ef, RBs) ->
902 case guard(G, Bs, Lf, Ef) of
903 true -> exprs(B, Bs, Lf, Ef, RBs);
904 false -> if_clauses(Cs, Bs, Lf, Ef, RBs)
912 try_clauses(B, Cases, Catches, AB, Bs, Lf, Ef, RBs) ->
914 try exprs(B, Bs, Lf, Ef, none) of
918 case match_clause(Cases, [V], Bs1, Lf, Ef) of
920 exprs(B2, Bs2, Lf, Ef, RBs);
929 case match_clause(Catches, [V], Bs, Lf, Ef) of
931 exprs(B2, Bs2, Lf, Ef, RBs);
939 exprs(AB, Bs, Lf, Ef, none)
963 case_clauses(Val, Cs, Bs, Lf, Ef, RBs) ->
964 case match_clause(Cs, [Val], Bs, Lf, Ef) of
966 exprs(B, Bs1, Lf, Ef, RBs);
974 receive_clauses(Cs, Bs, Lf, Ef, RBs) ->
975 receive_clauses(infinity, Cs, unused, Bs, Lf, Ef, RBs).
980 receive_clauses(T, Cs, TB, Bs, Lf, Ef, RBs) ->
981 F = fun (M) -> match_clause(Cs, [M], Bs, Lf, Ef) end,
984 exprs(B, Bs1, Lf, Ef, RBs);
987 exprs(B, Bs1, Lf, Ef, RBs)
1001 match_clause(Cs, Vs, Bs, Lf) ->
1002 match_clause(Cs, Vs, Bs, Lf, none).
1004 match_clause([{clause,_,H,G,B}|Cs], Vals, Bs, Lf, Ef) ->
1007 case guard(G, Bs1, Lf, Ef) of
1009 false -> match_clause(Cs, Vals, Bs, Lf, Ef)
1011 nomatch -> match_clause(Cs, Vals, Bs, Lf, Ef)
1019 guard(L=[G|_], Bs0, Lf, Ef) when is_list(G) ->
1020 guard1(L, Bs0, Lf, Ef);
1021 guard(L, Bs0, Lf, Ef) ->
1022 guard0(L, Bs0, Lf, Ef).
1025 guard1([G|Gs], Bs0, Lf, Ef) when is_list(G) ->
1026 case guard0(G, Bs0, Lf, Ef) of
1030 guard1(Gs, Bs0, Lf, Ef)
1035 guard0([G|Gs], Bs0, Lf, Ef) ->
1038 case guard_test(G, Bs0, Lf, Ef) of
1039 {value,true,Bs} -> guard0(Gs, Bs, Lf, Ef);
1051 guard_test({call,L,{atom,Ln,F},As0}, Bs0, Lf, Ef) ->
1054 expr_guard_test(G, Bs0, Lf, Ef);
1055 guard_test({call,L,{remote,Lr,{atom,Lm,erlang},{atom,Lf,F}},As0},
1056 Bs0, Lf, Ef) ->
1058 G = {call,L,{remote,Lr,{atom,Lm,erlang},{atom,Lf,TT}},As0},
1059 expr_guard_test(G, Bs0, Lf, Ef);
1060 guard_test(G, Bs0, Lf, Ef) ->
1061 expr_guard_test(G, Bs0, Lf, Ef).
1063 expr_guard_test(G, Bs0, Lf, Ef) ->
1064 try {value,true,_} = expr(G, Bs0, Lf, Ef, none)