[m2sci] kernel code reorganization: clarify dependencies & ease code browsing
[scilab.git] / scilab / modules / m2sci / macros / kernel / getvar2sci.sci
index b0fd63e..3a664e8 100644 (file)
@@ -10,7 +10,7 @@
 // For more information, see the COPYING file which you should have received
 // along with this program.
 
-function [sci_equiv]=getvar2sci(var,lhslist)
+function sci_equiv = getvar2sci(var,lhslist)
     // Translate the named variable acquisition
 
     // Global variable for M2SCI
@@ -64,3 +64,30 @@ function [sci_equiv]=getvar2sci(var,lhslist)
         sci_equiv=Variable(varname,Infer(varslist(index).dims,varslist(index).type))
     end
 endfunction
+
+// -----------------------------------------------------------------------------
+
+function sci_equiv = get_unknown(varname,lhslist)
+    // Private function called only within getvar2sci()
+    //
+    // Handle cases where varname appear in an expression while it is not known.
+
+    // nam may be:
+    // - a variable created in another clause part
+    // - a M-file called without args
+    // - a variable created by an eval
+
+    // Check clause !!!
+
+    // Check if it is a Matlab function not converted yet
+    if or(varname==not_yet_converted()) then
+        set_infos(msprintf(gettext("Matlab function %s not yet converted."),varname),2)
+        tmpvar=Variable(varname,Infer())
+        sci_equiv=Funcall("mtlb",1,Rhs_tlist(tmpvar),lhslist)
+    else
+        // Other cases: I am not able to determine what is nam
+        set_infos(msprintf(gettext("mtlb(%s) can be replaced by %s() or %s whether %s is an M-file or not."),varname,varname,varname,varname),1)
+        tmpvar=Variable(varname,Infer())
+        sci_equiv=Funcall("mtlb",1,Rhs_tlist(tmpvar),lhslist)
+    end
+endfunction