summaryrefslogtreecommitdiff
path: root/macros/findDeps/findDeps.sci
diff options
context:
space:
mode:
authorSiddhesh Wani2015-05-25 14:46:31 +0530
committerSiddhesh Wani2015-05-25 14:46:31 +0530
commitdb464f35f5a10b58d9ed1085e0b462689adee583 (patch)
treede5cdbc71a54765d9fec33414630ae2c8904c9b8 /macros/findDeps/findDeps.sci
downloadScilab2C_fossee_old-db464f35f5a10b58d9ed1085e0b462689adee583.tar.gz
Scilab2C_fossee_old-db464f35f5a10b58d9ed1085e0b462689adee583.tar.bz2
Scilab2C_fossee_old-db464f35f5a10b58d9ed1085e0b462689adee583.zip
Original Version
Diffstat (limited to 'macros/findDeps/findDeps.sci')
-rw-r--r--macros/findDeps/findDeps.sci44
1 files changed, 44 insertions, 0 deletions
diff --git a/macros/findDeps/findDeps.sci b/macros/findDeps/findDeps.sci
new file mode 100644
index 0000000..965ae8e
--- /dev/null
+++ b/macros/findDeps/findDeps.sci
@@ -0,0 +1,44 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - 2009 - Arnaud TORSET
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+
+
+function y=findDeps(x, deps)
+//give the dependances of x
+//
+
+nbArgsIn = size(deps.x,'c');
+//stocke deps.x dans y
+y=deps.x;
+for i=1:nbArgsIn,
+ //on boucle sur le nombre d'entrées afin de pouvoir extraire chaque éléments
+ //l'element est stockédans deps(deps.a(i))
+ for j=1:size(deps(deps.a(i)),'c'),
+ //on boucle sur les dependances de cet element afin de savoir s'il faut rajoutere des dependances
+ nouveau = 0;
+ for k=1:size(y,'c'),
+ //on boucle sur le nombre d'elements de y afin de faire une comparaison entre les elements
+ //presents et absents de la liste.
+ //S'il est absent de la liste(nouveau=0), on le rajoute à y, sinon(nouveau=1) on fait rien
+ if (deps(deps.a(i))(j)==deps.y(k)) then nouveau=nouveau+1;end;
+ end;
+ if (nouveau==0) then y(1,size(y,'c')+1)=deps(deps.a(i))(j);end;
+ end;
+end;
+
+//si le nb de parametres du début est égal à celui de la fin alors on arrete, sinon on continue
+nbArgsOut = size(deps.y,'c');
+if (nbArgsOut>nbArgsIn) then findDeps(y, deps);
+else if (nbArgsOut<nbArgsIn) then disp("error");end;
+end;
+
+endfunction
+
+
+
+