dynare/matlab/m2html/searchindex.m

54 lines
1.3 KiB
Matlab

function [s, freq] = searchindex(mfile, szmin)
%Compute keywords statistics of an M-file
% S = SEARCHINDEX(MFILE) returns a cell array of char S containing
% all the keywords (variables, function names, words in comments or
% char arrays) found in M-file MFILE, of more than 2 characters.
% S = SEARCHINDEX(MFILE, SZMIN) allows to specify the minimum size
% SZMIN of the keywords.
% [S, FREQ] = SEARCHINDEX(...) also returns the occurency frequence
% of each keyword in the M-file.
%
% See also M2HTML
% Copyright (C) 2003 Guillaume Flandin <Guillaume@artefact.tk>
% $Revision: 1.1.2.1 $Date: 2004/03/31 14:46:22 $
error(nargchk(1,2,nargin));
if nargin == 1, szmin = 2; end
%- Delimiters used in strtok
strtok_delim = sprintf(' \t\n\r(){}[]<>+-*~#!|\\@&/.,:;="''%%');
%- Open for reading the M-file
fid = openfile(mfile,'r');
%- Initialize keywords list
s = {};
%- Loop over lines
while 1
tline = fgetl(fid);
if ~ischar(tline), break, end
%- Extract keywords in each line
while 1
[w, tline] = strtok(tline,strtok_delim);
if isempty(w), break, end;
%- Check the length of the keyword
if length(w) > szmin
s{end+1} = w;
end
end
end
%- Close the M-file
fclose(fid);
%- Remove repeted keywords
[s, i, j] = unique(s);
%- Compute occurency frenquency if required
if nargout == 2,
freq = histc(j,1:length(i));
end