I should play with your code, but I'm lazy.
1) lmfpLimit integer ALIAS for $3
is missing the trailing ";"
lmfpLimit integer ALIAS for $3;
2) VARCHAR variables need a length
curId varchar;
should be
curId varchar(100);
3) I have not seen this style of declaration, where the argument type is repeated from the function's argument list.
Thismay be OK, but if nothing else helps maybe removing the type will help.
curTrackList char(15) ALIAS for $1;
sliceFile varchar ALIAS for $2;
lmfpLimit integer ALIAS for $3
>>
curTrackList char(15) ALIAS for $1;
sliceFile varchar ALIAS for $2;
lmfpLimit integer ALIAS for $3
mTrackDet RECORD;
lpmfSum integer := 0;
Sliced CONSTANT integer := 2;
curId varchar;
counter integer :=1 ;
>>