* Bugs 16567 16586 fixed: mfile2sci() supports block %{..%}. Appended comments improved"
[scilab.git] / scilab / modules / m2sci / macros / kernel / replace_end_dollar.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) 2019 - Samuel GOUGEON
3 //
4 // This file is hereby licensed under the terms of the GNU GPL v2.0,
5 // pursuant to article 5.3.4 of the CeCILL v.2.1.
6 // This file was originally licensed under the terms of the CeCILL v2.1,
7 // and continues to be available under such terms.
8 // For more information, see the COPYING file which you should have received
9 // along with this program.
10
11 function txt = replace_end_dollar(txt)
12
13     patterns = ["/(?:\(|\-|\+|\*|\:|\,)\s*end\s*(\)|(\-|\+|\*|\/|\:|\,).*?\))/"
14                 "/(?:\{|\-|\+|\*|\:|\,)\s*end\s*(\}|(\-|\+|\*|\/|\:|\,).*?\})/"
15                ]'
16     for pattern = patterns
17         rows = grep(txt, pattern, "r");
18         for i = rows
19             t = txt(i);
20             [d, f, M] = regexp(t, pattern);
21             Mr = strsubst(M, "end", "$");
22             for j = 1:size(M,1)
23                 t = strsubst(t, M(j), Mr(j));
24             end
25             txt(i) = t;
26         end
27     end
28 endfunction