eliminated warnings. there were lots of unnecessary variables created in function parameters

This commit is contained in:
aj
2010-11-04 20:57:23 -07:00
parent 01ec22e351
commit 9ac6f0cc4a
7 changed files with 23 additions and 143 deletions

View File

@@ -15,7 +15,7 @@ make_app([AppDirAtom]) ->
Modules = get_modules(AppDir),
AppSrc = try get_app_src(AppDir)
catch error:{badmatch, _} ->
io:format("Couldn't get AppSrcFile for ~p~n", [AppDir]),
% io:format("Couldn't get AppSrcFile for ~p~n", [AppDir]),
erlang:halt()
end,
{application, Name, Opts} = AppSrc,

View File

@@ -1,132 +0,0 @@
-module(ezic_compile).
-include("include/ezic.hrl").
-export([flatten/2, separate/1, zone_sorter/2]).
% @todo figure out what to do with leap seconds
separate(Records) ->
Zones= [Z || Z=#zone{} <- Records],
Rules= [Z || Z=#rule{} <- Records],
Leaps= [Z || Z=#leap{} <- Records],
Links= [Z || Z=#link{} <- Records],
{ok, Zones, Rules, Leaps, Links}.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% FLATTENING PSEUDOCODE
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% args: Zones, Rules
%
% take the first zone, get all zones with the same name
% sort them by ascending date (oldest first)
% foreach zone:
% find all rules between start (if exists) & end (if exists) of zone
% foreach rule:
% create a #flatzone
% flatten the rest of the zones
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
flatten(Zones, Rules) ->
% ?debug("Rules: ~p", [Rules]),
flatten(Zones, Rules, []).
% note: recursive
flatten([], _, Flats) ->
Flats;
flatten(Zones, Rules, Flats) ->
[Zone | _] = Zones,
% ?debug("Zone: ~p", [Zone]),
?debug("Flattening: ~p", [Zone#zone.name]),
{ZoneSet, RestZones} = lists:splitwith(make_zone_filter(Zone), Zones),
% ?debug("ZoneSet: ~p", [ZoneSet]),
NeededRules= lists:filter(make_rule_zone_filter(ZoneSet), Rules),
% ?debug("NeededRules: ~p", [NeededRules]),
SortedZoneSet= lists:sort(fun zone_sorter/2, ZoneSet),
NewFlats= lists:append(flatten_set(SortedZoneSet, NeededRules), Flats),
% ?debug("Sorted Zones: ~p", [SortedZoneSet]),
flatten(RestZones, Rules, NewFlats).
zone_sorter(#zone{until=U1}, #zone{until=U2}) ->
ezic_date:compare_datetimes(U1, U2).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% INTERNAL
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% filter generators
make_zone_filter(#zone{name=Name}) ->
fun(#zone{name=N}) when Name=:=N-> true; (_)->false end.
make_rule_zone_filter(ZoneSet) ->
ZS= sets:from_list([Z#zone.rule || Z<-ZoneSet]),
% ?debug("~n\t ZoneSetRules: ~p", [sets:to_list(ZS)]),
fun(#rule{name=R})->
sets:is_element(R, ZS)
end.
% accepts a rule, and returns true if it exists between the two years given
make_rule_time_filter(D1, D2) ->
fun(#rule{from=F, to=T}) ->
ezic_date:overlap({D1,D2}, {F,T})
end.
flatten_set(ZoneSet, Rules) ->
flatten_set(ZoneSet, Rules, none, []).
% note: recursive
flatten_set([], _, _, Flats) ->
Flats;
flatten_set(ZoneSet, Rules, Prev, Flats) ->
[Zone|Rest] = ZoneSet,
NewFlats= lists:append(flatten_one(Zone, Prev, Rules), Flats),
flatten_set(Rest, Rules, Zone, NewFlats).
flatten_one(Zone=#zone{until=Until}, none, Rules) ->
NeededRules= lists:filter(make_rule_time_filter(minimum, Until), Rules),
lists:map(fun(R)-> flatten_each(Zone, R, minimum) end, NeededRules);
flatten_one(Zone=#zone{until=UTo}, NextZone=#zone{until=UFrom}, Rules) ->
NeededRules= lists:filter(make_rule_time_filter(UFrom, UTo), Rules),
lists:map(fun(R)-> flatten_each(Zone, R, UFrom) end, NeededRules).
flatten_each(Zone, Rule, From) ->
% ?debug("flatten_each: ~n\tZone: ~p~n\tRule: ~p~n\tFrom: ~p", [Zone, Rule, From]),
% erlang:error(dbg),
not_done.
next_zone([]) ->
none;
next_zone([H|T]) ->
H.

View File

@@ -115,9 +115,9 @@ compare_datetimes_normal(current, current) -> true;
compare_datetimes_normal(current, _) -> false;
compare_datetimes_normal(_,current) -> true;
compare_datetimes_normal({D1, T1}, {D2, T2}) when D1 < D2 ->
compare_datetimes_normal({D1, _}, {D2, _}) when D1 < D2 ->
true;
compare_datetimes_normal({D1, T1}, {D2, T2}) when D1 > D2 ->
compare_datetimes_normal({D1, _}, {D2, _}) when D1 > D2 ->
false;
compare_datetimes_normal({_, T1}, {_, T2}) ->
compare_times(T1, T2).
@@ -153,12 +153,12 @@ normalize({Y,M,{last, D}}) ->
{Date, #tztime{}};
normalize({Date={Y,M,D},Time={H,_,_}}) when is_integer(H) ->
normalize({Date={_,_,_},Time={H,_,_}}) when is_integer(H) ->
{Date, #tztime{time=Time}};
normalize({Date={Y,M,D}, Tz=#tztime{}}) when is_integer(D) ->
normalize({Date={_,_,D}, Tz=#tztime{}}) when is_integer(D) ->
{Date, Tz};
normalize({{Y,M,TzOn=#tzon{day=Day, filter=Filter}}, Tz=#tztime{}}) ->
normalize({{Y,M,#tzon{day=Day, filter=Filter}}, Tz=#tztime{}}) ->
Date= first_day_limited(Day, Filter, Y,M),
{Date, Tz};
normalize({{Y,M,{last, D}}, Tz=#tztime{}}) ->

View File

@@ -1,3 +1,4 @@
-module(ezic_db).
-include("include/ezic.hrl").
-include_lib("stdlib/include/qlc.hrl").
@@ -56,7 +57,7 @@ create_tabs(ok) ->
%% {atomic, ok}= mnesia:create_table(link, [{disc_copies, [node()]},{attributes, record_info(fields, link)}]);
ok;
create_tabs(E={error, {_, {already_exists,_}}}) ->
create_tabs({error, {_, {already_exists,_}}}) ->
mnesia:start(),
ok;
create_tabs(E) ->

View File

@@ -8,7 +8,7 @@
-endif.
-export([rule/1,zone/1,link/1,leap/1]).
-export([rule/1,zone/1,link/1,leap/1, separate/1]).
@@ -42,12 +42,23 @@ link([From,To]) ->
{ok, #link{from=From, to=To}}.
% @todo figure out what must be done with leap seconds
leap([YearS, MonthS, DayS, TimeS, Corr, RS]) ->
Y=list_to_integer(YearS),
M=ezic_date:month_to_num(MonthS),
D=list_to_integer(DayS),
Time=parse_abs_time(TimeS),
{ok, #leap{datetime={{Y,M,D}, Time}}}.
{ok, #leap{datetime={{Y,M,D}, Time}, corr=Corr, rs=RS}}.
separate(Records) ->
Zones= [Z || Z=#zone{} <- Records],
Rules= [Z || Z=#rule{} <- Records],
Leaps= [Z || Z=#leap{} <- Records],
Links= [Z || Z=#link{} <- Records],
{ok, Zones, Rules, Leaps, Links}.

View File

@@ -35,7 +35,7 @@ relevant(Now, Rule=#rule{from=F, to=T}) ->
end.
relevant2(Now, Rule=#rule{in=Month, on=Day, at=Time}) ->
relevant2(Now, #rule{in=Month, on=Day, at=Time}) ->
{{Y,_,_},_} = Now,
RTime= {{Y, Month, Day}, Time},
ezic_date:compare_datetimes(RTime, Now).

View File

@@ -20,7 +20,7 @@ sort(#zone{until=U1}, #zone{until=U2}) ->
revsort(Z1=#zone{}, Z2=#zone{}) ->
not sort(Z1, Z2).
older_zone(Zone=#zone{until=Until}, Now) ->
older_zone(#zone{until=Until}, Now) ->
ezic_date:compare_datetimes(Until, Now).