Core help & gateways: unreference macr2lst after its removal 04/16804/3
Paul Bignier [Mon, 6 Jul 2015 15:24:54 +0000 (17:24 +0200)]
 * https://codereview.scilab.org/#/c/16794 forgot to unref macr2lst from the doc and the gateways list

Change-Id: Ifc18e55b05516fecb78d4a53cc6452343bb7b7f1

22 files changed:
scilab/modules/core/sci_gateway/core_gateway.xml
scilab/modules/core/tests/unit_tests/function.dia.ref
scilab/modules/core/tests/unit_tests/function.tst
scilab/modules/core/tests/unit_tests/opcode.dia.ref [deleted file]
scilab/modules/core/tests/unit_tests/opcode.tst [deleted file]
scilab/modules/functions/help/en_US/bytecode.xml
scilab/modules/functions/help/en_US/listfunctions.xml
scilab/modules/functions/help/en_US/macrovar.xml
scilab/modules/functions/help/fr_FR/bytecode.xml
scilab/modules/functions/help/fr_FR/macrovar.xml
scilab/modules/functions/help/ja_JP/bytecode.xml
scilab/modules/functions/help/ja_JP/listfunctions.xml
scilab/modules/functions/help/ja_JP/macrovar.xml
scilab/modules/functions/help/pt_BR/bytecode.xml
scilab/modules/functions/help/pt_BR/listfunctions.xml
scilab/modules/functions/help/pt_BR/macrovar.xml
scilab/modules/functions/help/ru_RU/bytecode.xml
scilab/modules/functions/help/ru_RU/listfunctions.xml
scilab/modules/functions/help/ru_RU/macrovar.xml
scilab/modules/functions/tests/nonreg_tests/bug_1469.dia.ref
scilab/modules/functions/tests/nonreg_tests/bug_1469.tst
scilab/modules/string/macros/%mc_string.sci [deleted file]

index e426414..0511411 100644 (file)
@@ -2,11 +2,11 @@
 <!--
  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  * Copyright (C)  2007 - INRIA Sylvestre LEDRU
- * 
+ *
  * 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    
+ * are also available at
  * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
  *
  -->
     <PRIMITIVE gatewayId="13" primitiveId="20" primitiveName="newfun" />
     <PRIMITIVE gatewayId="13" primitiveId="21" primitiveName="clearfun" />
     <PRIMITIVE gatewayId="13" primitiveId="22" primitiveName="funptr" />
-    <PRIMITIVE gatewayId="13" primitiveId="23" primitiveName="macr2lst" />
-    <PRIMITIVE gatewayId="13" primitiveId="24" primitiveName="setbpt" />
-    <PRIMITIVE gatewayId="13" primitiveId="25" primitiveName="delbpt" />
-    <PRIMITIVE gatewayId="13" primitiveId="26" primitiveName="dispbpt" />
-    <PRIMITIVE gatewayId="13" primitiveId="27" primitiveName="funcprot" />
-    <PRIMITIVE gatewayId="13" primitiveId="28" primitiveName="where" />
-    <PRIMITIVE gatewayId="13" primitiveId="29" primitiveName="havewindow" />
-    <PRIMITIVE gatewayId="13" primitiveId="30" primitiveName="stacksize" />
-    <PRIMITIVE gatewayId="13" primitiveId="31" primitiveName="mtlb_mode" />
-    <PRIMITIVE gatewayId="13" primitiveId="32" primitiveName="clear" />
-    <PRIMITIVE gatewayId="13" primitiveId="33" primitiveName="what" />
-    <PRIMITIVE gatewayId="13" primitiveId="34" primitiveName="sciargs" />
-    <PRIMITIVE gatewayId="13" primitiveId="35" primitiveName="ieee" />
-    <PRIMITIVE gatewayId="13" primitiveId="36" primitiveName="typename" />
-    <PRIMITIVE gatewayId="13" primitiveId="37" primitiveName="global" />
-    <PRIMITIVE gatewayId="13" primitiveId="38" primitiveName="clearglobal" />
-    <PRIMITIVE gatewayId="13" primitiveId="39" primitiveName="isglobal" />
-    <PRIMITIVE gatewayId="13" primitiveId="40" primitiveName="gstacksize" />
-    <PRIMITIVE gatewayId="13" primitiveId="41" primitiveName="intppty" />
-    <PRIMITIVE gatewayId="13" primitiveId="42" primitiveName="lasterror" />
-    <PRIMITIVE gatewayId="13" primitiveId="43" primitiveName="getversion" />
-    <PRIMITIVE gatewayId="13" primitiveId="44" primitiveName="macr2tree" />
-    <PRIMITIVE gatewayId="13" primitiveId="45" primitiveName="getos" />
-    <PRIMITIVE gatewayId="13" primitiveId="46" primitiveName="banner" />
-    <PRIMITIVE gatewayId="13" primitiveId="47" primitiveName="getmemory" />
-    <PRIMITIVE gatewayId="13" primitiveId="48" primitiveName="getmd5" />
-    <PRIMITIVE gatewayId="13" primitiveId="49" primitiveName="getmodules" />
-    <PRIMITIVE gatewayId="13" primitiveId="50" primitiveName="with_module" />
-    <PRIMITIVE gatewayId="13" primitiveId="51" primitiveName="getdebuginfo" />
-    <PRIMITIVE gatewayId="13" primitiveId="52" primitiveName="readgateway" />
-    <PRIMITIVE gatewayId="13" primitiveId="53" primitiveName="exit" />
+    <PRIMITIVE gatewayId="13" primitiveId="23" primitiveName="setbpt" />
+    <PRIMITIVE gatewayId="13" primitiveId="24" primitiveName="delbpt" />
+    <PRIMITIVE gatewayId="13" primitiveId="25" primitiveName="dispbpt" />
+    <PRIMITIVE gatewayId="13" primitiveId="26" primitiveName="funcprot" />
+    <PRIMITIVE gatewayId="13" primitiveId="27" primitiveName="where" />
+    <PRIMITIVE gatewayId="13" primitiveId="28" primitiveName="havewindow" />
+    <PRIMITIVE gatewayId="13" primitiveId="29" primitiveName="stacksize" />
+    <PRIMITIVE gatewayId="13" primitiveId="30" primitiveName="mtlb_mode" />
+    <PRIMITIVE gatewayId="13" primitiveId="31" primitiveName="clear" />
+    <PRIMITIVE gatewayId="13" primitiveId="32" primitiveName="what" />
+    <PRIMITIVE gatewayId="13" primitiveId="33" primitiveName="sciargs" />
+    <PRIMITIVE gatewayId="13" primitiveId="34" primitiveName="ieee" />
+    <PRIMITIVE gatewayId="13" primitiveId="35" primitiveName="typename" />
+    <PRIMITIVE gatewayId="13" primitiveId="36" primitiveName="global" />
+    <PRIMITIVE gatewayId="13" primitiveId="37" primitiveName="clearglobal" />
+    <PRIMITIVE gatewayId="13" primitiveId="38" primitiveName="isglobal" />
+    <PRIMITIVE gatewayId="13" primitiveId="39" primitiveName="gstacksize" />
+    <PRIMITIVE gatewayId="13" primitiveId="40" primitiveName="intppty" />
+    <PRIMITIVE gatewayId="13" primitiveId="41" primitiveName="lasterror" />
+    <PRIMITIVE gatewayId="13" primitiveId="42" primitiveName="getversion" />
+    <PRIMITIVE gatewayId="13" primitiveId="43" primitiveName="macr2tree" />
+    <PRIMITIVE gatewayId="13" primitiveId="44" primitiveName="getos" />
+    <PRIMITIVE gatewayId="13" primitiveId="45" primitiveName="banner" />
+    <PRIMITIVE gatewayId="13" primitiveId="46" primitiveName="getmemory" />
+    <PRIMITIVE gatewayId="13" primitiveId="47" primitiveName="getmd5" />
+    <PRIMITIVE gatewayId="13" primitiveId="48" primitiveName="getmodules" />
+    <PRIMITIVE gatewayId="13" primitiveId="49" primitiveName="with_module" />
+    <PRIMITIVE gatewayId="13" primitiveId="50" primitiveName="getdebuginfo" />
+    <PRIMITIVE gatewayId="13" primitiveId="51" primitiveName="readgateway" />
+    <PRIMITIVE gatewayId="13" primitiveId="52" primitiveName="exit" />
     
     <PRIMITIVE gatewayId="14" primitiveId="1" primitiveName="user" />
     
index 62aac21..56d5b4a 100644 (file)
@@ -11,43 +11,43 @@ funcprot(0);
 //               Various calling sequences
 //               -------------------------
 function y=foo(x)
- y=x^2
+    y=x^2
 endfunction
 if foo(2)<>4  then bugmes();quit;end
 //
 function y=foo(a,b)
- y=a+b
+    y=a+b
 endfunction
 if foo(2,3)<>5  then bugmes();quit;end
 //
 function [y,z]=foo(a)
- y=a^2
- z=a^3
+    y=a^2
+    z=a^3
 endfunction
 [y,z]=foo(2);if y<>4|z<>8 then bugmes();quit;end
 //
 function y=foo()
- y=2
+    y=2
 endfunction
 if foo()<>2  then bugmes();quit;end
 //
 function y=foo
- y=2
+    y=2
 endfunction
 if foo()<>2  then bugmes();quit;end
 //
 function []=foo
- y=resume(2)
+    y=resume(2)
 endfunction
 foo();if y<>2  then bugmes();quit;end
 //
 function foo
- y=resume(3)
+    y=resume(3)
 endfunction
 foo();if y<>3  then bugmes();quit;end
 //
 function result=foo(a,b)
-result = [(a+b) (a-b) (a*a + b*b)];
+    result = [(a+b) (a-b) (a*a + b*b)];
 endfunction
 result=foo(32,64); if or(result <> [96. -32. 5120.]) then bugmes();quit;end
 //
@@ -61,193 +61,190 @@ function y=foo(x),y=3*x,endfunction
 if foo(2)<>6  then bugmes();quit;end
 //
 function y=foo(x)
-  z=x^2
-  function y=foo1(x)
-    y=x+1
-  endfunction
-  y=foo1(z)
+    z=x^2
+    function y=foo1(x)
+        y=x+1
+    endfunction
+    y=foo1(z)
 endfunction
-if foo(2)<>5  then bugmes();quit;end 
+if foo(2)<>5  then bugmes();quit;end
 //
 //               Combined with deff
 //               -------------------
 function y=foo(x)
-  z=x^2
-  deff('y=foo1(x)','y=x+1')
-  y=foo1(z)
-endfunction
-if foo(2)<>5  then bugmes();quit;end 
-//  
-deff('y=foo(x)',[
-    'z=x^2'
-    'function y=foo1(x)'
-    'y=x+1'
-    'endfunction'
-    'y=foo1(z)'])
-if foo(2)<>5  then bugmes();quit;end 
-                
+    z=x^2
+    deff("y=foo1(x)","y=x+1")
+    y=foo1(z)
+endfunction
+if foo(2)<>5  then bugmes();quit;end
+//
+deff("y=foo(x)",[
+"z=x^2"
+"function y=foo1(x)"
+"y=x+1"
+"endfunction"
+"y=foo1(z)"])
+if foo(2)<>5  then bugmes();quit;end
 function y=foo(x),y=x+1
 endfunction;if foo(2)<>3  then bugmes();quit;end
 //
 //               Combined with exec
 //               -------------------
 function foo
-  z=9;
-  function y=foo1(x)
-    y=x+1;
-  endfunction
-  y=foo1(z);
-endfunction
-exec(foo); if y<>10  then bugmes();quit;end 
-//  
+    z=9;
+    function y=foo1(x)
+        y=x+1;
+    endfunction
+    y=foo1(z);
+endfunction
+exec(foo); if y<>10  then bugmes();quit;end
+//
 //               Combined with control instructions
 //               ----------------------------------
 if %t then
-  function  y=foo(x)
-    y=sin(x)
-  endfunction
+    function  y=foo(x)
+        y=sin(x)
+    endfunction
 else
-  function  y=foo(x)
-    y=1
-  endfunction
+    function  y=foo(x)
+        y=1
+    endfunction
 end
 if foo(1)<>sin(1)  then bugmes();quit;end
 //
 if %t then
-  function  y=foo(x)
-  if x==0 then
-    y=1
-  else
-    y=sin(x)/x
-  end
-  endfunction
+    function  y=foo(x)
+        if x==0 then
+            y=1
+        else
+            y=sin(x)/x
+        end
+    endfunction
 else
-  function  y=foo(x)
-    y=1
-  endfunction
+    function  y=foo(x)
+        y=1
+    endfunction
 end
 if foo(0)<>1   then bugmes();quit;end
 if foo(2)<>sin(2)/2   then bugmes();quit;end
 //
 z=0;
 for k=1:2
- function y=foo()
-   y=k
- endfunction
- z=z+foo();
+    function y=foo()
+        y=k
+    endfunction
+    z=z+foo();
 end
 if z<>3 then bugmes();quit;end
 //
-z=0;for k=1:2
- function y=foo(),y=k,endfunction
- z=z+foo();
+z=0;
+    function y=foo(),y=k,endfunction
+    z=z+foo();
 end
 if z<>3 then bugmes();quit;end
 //
-z=0;for k=1:2, function y=foo(),y=k,endfunction
- z=z+foo();
+z=0;
+    z=z+foo();
 end
 if z<>3 then bugmes();quit;end
 z=0;
 for k=1:2
- function y=foo(k)//qsdsdf
-   y=k^2
- endfunction
- z=z+foo();
+    function y=foo(k)//qsdsdf
+        y=k^2
+    endfunction
+    z=z+foo();
 end
 if z<>5 then bugmes();quit;end
 z=0;
 for k=1:2
- function y=foo(k)//qsdsdf
-   y=k^2 //a comment
- endfunction
- z=z+foo();
+    function y=foo(k)//qsdsdf
+        y=k^2 //a comment
+    endfunction
+    z=z+foo();
 end
 if z<>5 then bugmes();quit;end
 z=0;
 for k=1:2
- function y=foo(k), y=k^2, endfunction
- z=z+foo();
+    function y=foo(k), y=k^2, endfunction
+    z=z+foo();
 end
 if z<>5 then bugmes();quit;end
 z=0;
 for k=1:2
- function y=foo(k), y=k^2, endfunction// a comment
- z=z+foo();
+    function y=foo(k), y=k^2, endfunction// a comment
+    z=z+foo();
 end
 if z<>5 then bugmes();quit;end
 //bug 1024 non regression test
 O=[];
 for n= 1:10;
-  Fx=rand(1,100);
-  Fy=1:100;
-  function [f,g,ind]=cout(x,ind)
-    f1=(1-exp(-x*Fx) - Fy);
-    f= (1/2)*f1*f1';
-    g= x*(Fx.*exp(-x*Fx))*f1';
-  endfunction
-  [fopt,lmopt]=optim(cout,0.4);
-  O=[O fopt];
+    Fx=rand(1,100);
+    Fy=1:100;
+    function [f,g,ind]=cout(x,ind)
+        f1=(1-exp(-x*Fx) - Fy);
+        f= (1/2)*f1*f1';
+        g= x*(Fx.*exp(-x*Fx))*f1';
+    endfunction
+    [fopt,lmopt]=optim(cout,0.4);
+    O=[O fopt];
 end
-if size(O,'*')<>10 then bugmes();quit;end
+if size(O,"*")<>10 then bugmes();quit;end
 // test line count in compiled macros
-// 
+//
 function a=foo(),a=1,endfunction
-L=macr2lst(foo);
-if L(4)(1)<>'6' then bugmes();quit;end
+L=macr2tree(foo);
+if L(6)<>1 then bugmes();quit;end
 clear foo
 function a=foo()
-a=1,
+    a=1,
 endfunction
-L=macr2lst(foo);
-if L(4)(1)<>'15' then bugmes();quit;end
+L=macr2tree(foo);
+if L(6)<>3 then bugmes();quit;end
 clear foo
 function a=foo()//xxcxcx
-a=1,
+    a=1,
 endfunction
-L=macr2lst(foo);
-if L(4)(1)<>'31' then bugmes();quit;end
+L=macr2tree(foo);
+if L(6)<>3 then bugmes();quit;end
 clear foo
 function a=foo(),
-a=1,
+    a=1,
 endfunction
-L=macr2lst(foo);
-if L(4)(1)<>'15' then bugmes();quit;end
+L=macr2tree(foo);
+if L(6)<>3 then bugmes();quit;end
 clear foo
 function a=foo(),a=1//xxcxcx
-b=2
+    b=2
 endfunction
-L=macr2lst(foo);
-if L(4)(1)<>'6' then bugmes();quit;end
+L=macr2tree(foo);
+if L(6)<>3 then bugmes();quit;end
 clear foo
 function a=foo()
-a=..
-sin..
-(..
-1..
-),
+    a=...
+    sin...
+    (...
+    1...
+    ),
 endfunction
 //continuation lines are replaced by a sequence of empty lines followed by the logical line
 //so the function above is  the same as
 function a=foo1()
-a=sin(1),
+    a=sin(1),
 endfunction
-L=macr2lst(foo);
-t=L(9)(1)<>'6';
-for k=4:8,t=t|L(k)(1)<>'15';end
-if t then bugmes();quit;end
+L=macr2tree(foo);
+t=L(6)<>7;
 if foo<>foo1 then bugmes();quit;end
 clear foo foo1
-function a=foo(),a=..
-sin..
-(..
-1..
-),
+function a=foo(),a=...
+    sin...
+    (...
+    1 ...
+    ),
 endfunction
 //continuation lines are replaced by a sequence of empty lines followed by the logical line
 //foo should be equal to foo1
 function a=foo1(),a=sin(1),
 endfunction
-L=macr2lst(foo);
-if L(4)(1)<>'6'  then bugmes();quit;end
+L=macr2tree(foo);
+if L(6)<>6  then bugmes();quit;end
 if foo<>foo1 then bugmes();quit;end
index a5d2499..9c673a9 100644 (file)
@@ -6,8 +6,6 @@
 //  This file is distributed under the same license as the Scilab package.
 // =============================================================================
 
-// <-- NOT FIXED -->
-
 //Checks syntactical aspects  related to functions
 funcprot(0);
 //
@@ -207,36 +205,36 @@ if size(O,"*")<>10 then pause,end
 // test line count in compiled macros
 //
 function a=foo(),a=1,endfunction
-L=macr2lst(foo);
-if L(4)(1)<>"6" then pause,end
+L=macr2tree(foo);
+if L(6)<>1 then pause,end
 
 clear foo
 function a=foo()
     a=1,
 endfunction
-L=macr2lst(foo);
-if L(4)(1)<>"15" then pause,end
+L=macr2tree(foo);
+if L(6)<>3 then pause,end
 
 clear foo
 function a=foo()//xxcxcx
     a=1,
 endfunction
-L=macr2lst(foo);
-if L(4)(1)<>"31" then pause,end
+L=macr2tree(foo);
+if L(6)<>3 then pause,end
 
 clear foo
 function a=foo(),
     a=1,
 endfunction
-L=macr2lst(foo);
-if L(4)(1)<>"15" then pause,end
+L=macr2tree(foo);
+if L(6)<>3 then pause,end
 
 clear foo
 function a=foo(),a=1//xxcxcx
     b=2
 endfunction
-L=macr2lst(foo);
-if L(4)(1)<>"6" then pause,end
+L=macr2tree(foo);
+if L(6)<>3 then pause,end
 
 
 clear foo
@@ -257,10 +255,8 @@ function a=foo1()
     a=sin(1),
 endfunction
 
-L=macr2lst(foo);
-t=L(9)(1)<>"6";
-for k=4:8,t=t|L(k)(1)<>"15";end
-if t then pause,end
+L=macr2tree(foo);
+t=L(6)<>7;
 if foo<>foo1 then pause,end
 
 
@@ -276,8 +272,8 @@ endfunction
 function a=foo1(),a=sin(1),
 endfunction
 
-L=macr2lst(foo);
-if L(4)(1)<>"6"  then pause,end
+L=macr2tree(foo);
+if L(6)<>6  then pause,end
 if foo<>foo1 then pause,end
 
 
diff --git a/scilab/modules/core/tests/unit_tests/opcode.dia.ref b/scilab/modules/core/tests/unit_tests/opcode.dia.ref
deleted file mode 100644 (file)
index 2758af8..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-// =============================================================================
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) ????-2008 - INRIA
-//
-//  This file is distributed under the same license as the Scilab package.
-// =============================================================================
-prot=funcprot();funcprot(0);
-//a primitive as an argument of a primitive
-//-----------------------------------------
-function y=foo(),y=sin(cos),endfunction
-//is it properly compiled
-L=macr2lst(foo);
-if or(L(4)<>["2","cos","-4","0"]) then bugmes();quit;end // get variable named cos
-if or(L(5)<>["2","sin","-2","1"]) then bugmes();quit;end // get variable named sin (extraction)
-if or(L(6)<>["5","25","2","1"]) then bugmes();quit;end //realize sin(cos)
-if or(L(7)<>["29","52","y","0"]) then bugmes();quit;end //affectation
-//check if it executes properly
-function z=%fptr_sin(f), z=sin(f(%pi/6)),endfunction
-if foo()<>sin(cos(%pi/6)) then bugmes();quit;end
-//check modified pseudocode
-L1=macr2lst(foo);
-if or(L1(4)<>["27","6","23","cos"]) then bugmes();quit;end // create varfunptr
-if or(L1(5)<>["20","sin","1","1"]) then bugmes();quit;end // primitive all
-if or(L1(6)<>["29","52","y","0"]) then bugmes();quit;end //affectation
-if foo()<>sin(cos(%pi/6)) then bugmes();quit;end
-//a primitive as an argument of a macro
-//-----------------------------------------
-function y=foo(),y=toto(cos),endfunction
-L=macr2lst(foo);
-if or(L(4)<>["2","cos","-4","0"]) then bugmes();quit;end //get variable named cos
-if or(L(5)<>["2","toto","-2","1"]) then bugmes();quit;end // get variable named toto (extraction)
-if or(L(6)<>["5","25","2","1"]) then bugmes();quit;end //realize toto(cos)
-//check if it executes properly
-function y=toto(x),y=x(1),endfunction
-if foo()<>cos(1) then bugmes();quit;end
-//check modified pseudocode
-L1=macr2lst(foo);
-if or(L1(4)<>["27","6","23","cos"]) then bugmes();quit;end // create varfunptr
-if or(L1(5)<>["2","toto","-2","1"]) then bugmes();quit;end // primitive all
-if or(L1(6)<>["5","25","2","1"]) then bugmes();quit;end //affectation
-if foo()<>cos(1) then bugmes();quit;end
-// unknown variable as an argument of a macro
-//-----------------------------------------
-clear toto
-function y=foo(),y=toto(xxx),endfunction
-L=macr2lst(foo);
-if or(L(4)<>["2","xxx","-4","0"]) then bugmes();quit;end //get variable named xxx
-if or(L(5)<>["2","toto","-2","1"]) then bugmes();quit;end // get variable named toto (extraction)
-if or(L(6)<>["5","25","2","1"]) then bugmes();quit;end //realize toto(xxx)
-function y=toto(x),y=x(1),endfunction
-xxx=cos;
-if foo()<>cos(1) then bugmes();quit;end
-L1=macr2lst(foo);
-if or(L1(4)<>["2","xxx","-4","0"]) then bugmes();quit;end  //get variable named xxx
-if or(L1(5)<>["2","toto","-2","1"]) then bugmes();quit;end // get variable named toto (extraction)
-if or(L1(6)<>["5","25","2","1"]) then bugmes();quit;end //realize toto(xxx)
-if foo()<>cos(1) then bugmes();quit;end
-//xxxx
-//-----------------------------------------
-function y=foo(),y=sin(cos(%pi/6)),endfunction
-L=macr2lst(foo);
-if foo()<>sin(cos(%pi/6)) then bugmes();quit;end
-if foo()<>sin(cos(%pi/6)) then bugmes();quit;end
-//affectation of a primitive
-//-----------------------------------------
-function y=foo(),y=sin,endfunction
-L=macr2lst(foo);
-if or(L(4)<>["2","sin","0","0"]) then bugmes();quit;end // create varfunptr
-if type(foo())<>130 then bugmes();quit;end
-L=macr2lst(foo);
-if or(L(4)<>["27","6","22","sin"]) then bugmes();quit;end // create varfunptr
-if type(foo())<>130 then bugmes();quit;end
-sin=1
- sin  =
-    1.  
-sin //devrait repondre 1 or il essaye d'executer sin
- ans  =
-    1.  
-a=sin //est ok
- a  =
-    1.  
-prot=funcprot();funcprot(0);
diff --git a/scilab/modules/core/tests/unit_tests/opcode.tst b/scilab/modules/core/tests/unit_tests/opcode.tst
deleted file mode 100644 (file)
index b11a905..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-// =============================================================================
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) ????-2008 - INRIA
-//
-//  This file is distributed under the same license as the Scilab package.
-// =============================================================================
-// <-- NOT FIXED -->
-prot=funcprot();funcprot(0);
-//a primitive as an argument of a primitive
-//-----------------------------------------
-function y=foo(),y=sin(cos),endfunction
-//is it properly compiled
-L=macr2lst(foo);
-if or(L(4)<>["2","cos","-4","0"]) then pause,end // get variable named cos
-if or(L(5)<>["2","sin","-2","1"]) then pause,end // get variable named sin (extraction)
-if or(L(6)<>["5","25","2","1"]) then pause,end //realize sin(cos)
-if or(L(7)<>["29","52","y","0"]) then pause,end //affectation
-
-//check if it executes properly
-function z=%fptr_sin(f), z=sin(f(%pi/6)),endfunction
-if foo()<>sin(cos(%pi/6)) then pause,end
-
-//check modified pseudocode
-L1=macr2lst(foo);
-if or(L1(4)<>["27","6","23","cos"]) then pause,end // create varfunptr
-if or(L1(5)<>["20","sin","1","1"]) then pause,end // primitive all
-if or(L1(6)<>["29","52","y","0"]) then pause,end //affectation
-if foo()<>sin(cos(%pi/6)) then pause,end
-
-
-//a primitive as an argument of a macro
-//-----------------------------------------
-function y=foo(),y=toto(cos),endfunction
-L=macr2lst(foo);
-if or(L(4)<>["2","cos","-4","0"]) then pause,end //get variable named cos
-if or(L(5)<>["2","toto","-2","1"]) then pause,end // get variable named toto (extraction)
-if or(L(6)<>["5","25","2","1"]) then pause,end //realize toto(cos)
-
-//check if it executes properly
-function y=toto(x),y=x(1),endfunction
-if foo()<>cos(1) then pause,end
-
-//check modified pseudocode
-L1=macr2lst(foo);
-if or(L1(4)<>["27","6","23","cos"]) then pause,end // create varfunptr
-if or(L1(5)<>["2","toto","-2","1"]) then pause,end // primitive all
-if or(L1(6)<>["5","25","2","1"]) then pause,end //affectation
-if foo()<>cos(1) then pause,end
-
-// unknown variable as an argument of a macro
-//-----------------------------------------
-clear toto
-function y=foo(),y=toto(xxx),endfunction
-L=macr2lst(foo);
-if or(L(4)<>["2","xxx","-4","0"]) then pause,end //get variable named xxx
-if or(L(5)<>["2","toto","-2","1"]) then pause,end // get variable named toto (extraction)
-if or(L(6)<>["5","25","2","1"]) then pause,end //realize toto(xxx)
-
-function y=toto(x),y=x(1),endfunction
-xxx=cos;
-if foo()<>cos(1) then pause,end
-L1=macr2lst(foo);
-if or(L1(4)<>["2","xxx","-4","0"]) then pause,end  //get variable named xxx
-if or(L1(5)<>["2","toto","-2","1"]) then pause,end // get variable named toto (extraction)
-if or(L1(6)<>["5","25","2","1"]) then pause,end //realize toto(xxx)
-if foo()<>cos(1) then pause,end
-
-//xxxx
-//-----------------------------------------
-function y=foo(),y=sin(cos(%pi/6)),endfunction
-L=macr2lst(foo);
-if foo()<>sin(cos(%pi/6)) then pause,end
-if foo()<>sin(cos(%pi/6)) then pause,end
-
-//affectation of a primitive
-//-----------------------------------------
-
-function y=foo(),y=sin,endfunction
-L=macr2lst(foo);
-if or(L(4)<>["2","sin","0","0"]) then pause,end // create varfunptr
-if type(foo())<>130 then pause,end
-L=macr2lst(foo);
-if or(L(4)<>["27","6","22","sin"]) then pause,end // create varfunptr
-if type(foo())<>130 then pause,end
-
-sin=1
-sin //devrait repondre 1 or il essaye d'executer sin
-a=sin //est ok 
-prot=funcprot();funcprot(0);
index 23f1412..06a60b5 100644 (file)
@@ -84,9 +84,6 @@ bytecode(foo)
                 <link linkend="bytecodewalk">bytecodewalk</link>
             </member>
             <member>
-                <link linkend="macr2lst">macr2lst</link>
-            </member>
-            <member>
                 <link linkend="macr2tree">macr2tree</link>
             </member>
         </simplelist>
index a0e0338..47f5439 100644 (file)
@@ -95,9 +95,6 @@ flist(profilable)
                 <link linkend="fun2string">fun2string</link>
             </member>
             <member>
-                <link linkend="macr2lst">macr2lst</link>
-            </member>
-            <member>
                 <link linkend="profile">profile</link>
             </member>
             <member>
index aed52e4..9d80046 100644 (file)
@@ -75,9 +75,6 @@ vars = macrovar(f)
             <member>
                 <link linkend="string">string</link>
             </member>
-            <member>
-                <link linkend="macr2lst">macr2lst</link>
-            </member>
         </simplelist>
     </refsection>
 </refentry>
index 04bea30..6c0d9b0 100644 (file)
@@ -84,9 +84,6 @@ bytecode(foo)
                 <link linkend="bytecodewalk">bytecodewalk</link>
             </member>
             <member>
-                <link linkend="macr2lst">macr2lst</link>
-            </member>
-            <member>
                 <link linkend="macr2tree">macr2tree</link>
             </member>
         </simplelist>
index 66eab77..802ac8d 100644 (file)
@@ -75,9 +75,6 @@ vars = macrovar(f)
             <member>
                 <link linkend="string">string</link>
             </member>
-            <member>
-                <link linkend="macr2lst">macr2lst</link>
-            </member>
         </simplelist>
     </refsection>
 </refentry>
index 44b0ba2..dbb5a62 100644 (file)
@@ -1,5 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-
 <!--
  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  * Copyright (C) ????-2008 - INRIA Serge Steer
  * are also available at
  * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
  *-->
-
 <refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="bytecode">
-    
     <refnamediv>
-        
         <refname>bytecode</refname>
-        
         <refpurpose>
-            
             Scilab関数を指定すると"バイトコード"をScilab配列に返す,
-            
             またはその逆の処理を行う.
-            
         </refpurpose>
-        
     </refnamediv>
-    
     <refsynopsisdiv>
-        
         <title>呼び出し手順</title>
-        
         <synopsis>
-            
             x = bytecode(f)
-            
             f = bytecode(x)
-            
         </synopsis>
-        
     </refsynopsisdiv>
-    
     <refsection>
-        
         <title>引数</title>
-        
         <variablelist>
-            
             <varlistentry>
-                
                 <term>f</term>
-                
                 <listitem>
-                    
                     <para>
-                        
                         Scilab 関数.
-                        
                     </para>
-                    
                 </listitem>
-                
             </varlistentry>
-            
             <varlistentry>
-                
                 <term>x</term>
-                
                 <listitem>
-                    
                     <para>
-                        
                         int32 行ベクトル
-                        
                     </para>
-                    
                 </listitem>
-                
             </varlistentry>
-            
         </variablelist>
-        
     </refsection>
-    
     <refsection>
-        
         <title>説明</title>
-        
         <para>
-            
             <code>f= bytecode(x)</code>は,
-            
             Scilab関数 <varname>f</varname> の "バイトコード"を
-            
             整数配列<varname>x</varname>に返します.
-            
         </para>
-        
         <para>
-            
             <code>f= bytecode(x)</code> は,
-            
             Scilabの整数配列 <varname>x</varname> で指定した
-            
             "バイトコード"が示す関数 <varname>f</varname> を
-            
             返します.
-            
             <warning>
-                
                 警告: <varname>x</varname> の有効性は確認されません.
-                
             </warning>
-            
         </para>
-        
     </refsection>
-    
     <refsection>
-        
         <title>注意</title>
-        
         <para>
-            
             Scilab関数のバイトコードは,将来劇的に進化すると予想されるため,
-            
             この関数はプロファイル命令の処理に限って使用するべきです.
-            
         </para>
-        
     </refsection>
-    
     <refsection>
-        
         <title>例</title>
-        
         <programlisting role="example"><![CDATA[
 function a=foo(),a=sin(3),endfunction
 bytecode(foo)
  ]]></programlisting>
-        
     </refsection>
-    
     <refsection role="see also">
-        
         <title>参照</title>
-        
         <simplelist type="inline">
-            
             <member>
-                
                 <link linkend="add_profiling">add_profiling</link>
-                
             </member>
-            
             <member>
-                
                 <link linkend="bytecodewalk">bytecodewalk</link>
-                
             </member>
-            
             <member>
-                
-                <link linkend="macr2lst">macr2lst</link>
-                
-            </member>
-            
-            <member>
-                
                 <link linkend="macr2tree">macr2tree</link>
-                
             </member>
-            
         </simplelist>
-        
     </refsection>
-    
 </refentry>
-
index 558da30..4fb611e 100644 (file)
 <?xml version="1.0" encoding="UTF-8"?>
-
 <refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="listfunctions">
-    
     <refnamediv>
-        
         <refname>listfunctions</refname>
-        
         <refpurpose>
-            
             ワークスペースの全ての関数のプロパティ
-            
         </refpurpose>
-        
     </refnamediv>
-    
     <refsynopsisdiv>
-        
         <title>呼び出し手順</title>
-        
         <synopsis>[flist,compiled,profilable,called] = listfunctions([scope])</synopsis>
-        
     </refsynopsisdiv>
-    
     <refsection>
-        
         <title>パス名</title>
-        
         <variablelist>
-            
             <varlistentry>
-                
                 <term>scope</term>
-                
                 <listitem>
-                    
                     <para>
-                        
                         文字列, <literal>"local"</literal> (デフォルト) または <literal>"global"</literal>
-                        
                     </para>
-                    
                 </listitem>
-                
             </varlistentry>
-            
             <varlistentry>
-                
                 <term>flist</term>
-                
                 <listitem>
-                    
                     <para>文字列の配列,
-                        
                         指定した名前空間にある全関数変数の名前
-                        
                     </para>
-                    
                 </listitem>
-                
             </varlistentry>
-            
             <varlistentry>
-                
                 <term>compiled</term>
-                
                 <listitem>
-                    
                     <para>論理値配列,
-                        
                         対応する<varname>flist</varname>の要素が型=13の場合に真
-                        
                     </para>
-                    
                 </listitem>
-                
             </varlistentry>
-            
             <varlistentry>
-                
                 <term>profilable</term>
-                
                 <listitem>
-                    
                     <para>論理値配列,
-                        
                         対応する<varname>flist</varname>の要素が型=13の場合に真となり,
-                        
                         プロファイル情報が関数の擬似コードの中に追加されます.
-                        
                     </para>
-                    
                 </listitem>
-                
             </varlistentry>
-            
             <varlistentry>
-                
                 <term>called</term>
-                
                 <listitem>
-                    
                     <para>uint32 配列,
-                        
                         <varname>flist</varname> の対応する要素がコールされた回数
-                        
                         (プロファイル可能な関数の場合のみ非ゼロ)
-                        
                     </para>
-                    
                 </listitem>
-                
             </varlistentry>
-            
         </variablelist>
-        
     </refsection>
-    
     <refsection>
-        
         <title>説明</title>
-        
         <itemizedlist>
-            
             <listitem>
-                
                 <para>
-                    
                     この関数は,(<link linkend="who">who</link>で指定した)
-                    
                     ワークスペースの全ての変数を確認し,
-                    
                     11型または13型の変数を収集します;
-                    
                     後者の場合,
-                    
                     最初のコード行の末尾の特殊なプロファイル用エントリ,
-                    
                     すなわち,
-                    
                     <code>lst(5)(1)=="25"</code> をチェックするために,
-                    
                     <code>lst = macr2lst(fun)</code> がコールされます.
-                    
                 </para>
-                
             </listitem>
-            
         </itemizedlist>
-        
     </refsection>
-    
     <refsection>
-        
         <title>例</title>
-        
         <programlisting role="example"><![CDATA[
 recompilefunction("asinh","p")
 [flist,compiled,profilable,called] = listfunctions();
 flist(profilable)
  ]]></programlisting>
-        
     </refsection>
-    
     <refsection role="see also">
-        
         <title>参照</title>
-        
         <simplelist type="inline">
-            
             <member>
-                
                 <link linkend="function">function</link>
-                
             </member>
-            
             <member>
-                
                 <link linkend="exec">exec</link>
-                
             </member>
-            
             <member>
-                
                 <link linkend="deff">deff</link>
-                
             </member>
-            
             <member>
-                
                 <link linkend="fun2string">fun2string</link>
-                
             </member>
-            
             <member>
-                
-                <link linkend="macr2lst">macr2lst</link>
-                
-            </member>
-            
-            <member>
-                
                 <link linkend="profile">profile</link>
-                
             </member>
-            
             <member>
-                
                 <link linkend="recompilefunction">recompilefunction</link>
-                
             </member>
-            
             <member>
-                
                 <link linkend="who">who</link>
-                
             </member>
-            
         </simplelist>
-        
     </refsection>
-    
     <refsection>
-        
         <title>参考文献</title>
-        
         <para>
-            
             http://wiki.scilab.org/Scilab_function_variables%3A_representation%2C_manipulation
-            
         </para>
-        
     </refsection>
-    
 </refentry>
-
index 51c1e8b..6d9a737 100644 (file)
@@ -1,5 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-
 <!--
  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  * Copyright (C) ????-2008 - INRIA
  * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
  *
  -->
-
 <refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="macrovar">
-    
     <refnamediv>
-        
         <refname>macrovar</refname>
-        
         <refpurpose>関数の変数</refpurpose>
-        
     </refnamediv>
-    
     <refsynopsisdiv>
-        
         <title>呼び出し手順</title>
-        
         <synopsis>vars = macrovar(function)</synopsis>
-        
     </refsynopsisdiv>
-    
     <refsection>
-        
         <title>引数</title>
-        
         <variablelist>
-            
             <varlistentry>
-                
                 <term>vars</term>
-                
                 <listitem>
-                    
                     <para>
-                        
                         リスト,
-                        
                         <literal>list(in, out, nolocal, called, locals)</literal>.
-                        
                     </para>
-                    
                 </listitem>
-                
             </varlistentry>
-            
             <varlistentry>
-                
                 <term>function</term>
-                
                 <listitem>
-                    
                     <para>関数名.</para>
-                    
                 </listitem>
-                
             </varlistentry>
-            
         </variablelist>
-        
     </refsection>
-    
     <refsection>
-        
         <title>説明</title>
-        
         <para>
-            
             関数で使用される変数の集合のリストを返します.
-            
             <varname>vars</varname> は以下の5つの文字列の列ベクトルからなる
-            
             リストです:
-            
         </para>
-        
         <simplelist type="inline">
-            
             <member>
-                
                 <varname>in</varname> 入力変数 (<code>vars(1)</code>);
-                
             </member>
-            
             <member>
-                
                 <varname>out</varname>: 出力変数 (<code>vars(2)</code>);
-                
             </member>
-            
             <member>
-                
                 <varname>nolocal</varname>:
-                
                 関数内で定義されていない関数でない変数を参照
-                
                 (<code>vars(3)</code>);
-                
             </member>
-            
             <member>
-                
                 <varname>called</varname>: コールされた関数の名前 (<code>vars(4)</code>);
-                
             </member>
-            
             <member>
-                
                 <varname>locals</varname>: ローカル変数 (<code>vars(5)</code>).
-                
             </member>
-            
         </simplelist>
-        
     </refsection>
-    
     <refsection>
-        
         <title>例</title>
-        
         <programlisting role="example"><![CDATA[
 deff('y = f(x1, x2)', 'loc = 1; y = a*x1+x2-loc');
 vars = macrovar(f)
  ]]></programlisting>
-        
     </refsection>
-    
     <refsection role="see also">
-        
         <title>参照</title>
-        
         <simplelist type="inline">
-            
             <member>
-                
                 <link linkend="string">string</link>
-                
             </member>
-            
-            <member>
-                
-                <link linkend="macr2lst">macr2lst</link>
-                
-            </member>
-            
         </simplelist>
-        
     </refsection>
-    
 </refentry>
-
index 7af6fd4..5cff25f 100644 (file)
@@ -81,9 +81,6 @@ bytecode(foo)
                 <link linkend="bytecodewalk">bytecodewalk</link>
             </member>
             <member>
-                <link linkend="macr2lst">macr2lst</link>
-            </member>
-            <member>
                 <link linkend="macr2tree">macr2tree</link>
             </member>
         </simplelist>
index cad38a9..14a6cc2 100644 (file)
@@ -94,9 +94,6 @@ flist(profilable)
                 <link linkend="fun2string">fun2string</link>
             </member>
             <member>
-                <link linkend="macr2lst">macr2lst</link>
-            </member>
-            <member>
                 <link linkend="profile">profile</link>
             </member>
             <member>
index 6cecf8c..bf508fe 100644 (file)
@@ -80,9 +80,6 @@ vars=macrovar(f)
             <member>
                 <link linkend="string">string</link>
             </member>
-            <member>
-                <link linkend="macr2lst">macr2lst</link>
-            </member>
         </simplelist>
     </refsection>
 </refentry>
index 2ca37b9..f6f3bbc 100644 (file)
@@ -83,9 +83,6 @@ bytecode(foo)
                 <link linkend="bytecodewalk">bytecodewalk</link>
             </member>
             <member>
-                <link linkend="macr2lst">macr2lst</link>
-            </member>
-            <member>
                 <link linkend="macr2tree">macr2tree</link>
             </member>
         </simplelist>
index c58d88c..fcad2b6 100644 (file)
@@ -107,9 +107,6 @@ flist(profilable)
                 <link linkend="fun2string">fun2string</link>
             </member>
             <member>
-                <link linkend="macr2lst">macr2lst</link>
-            </member>
-            <member>
                 <link linkend="profile">profile</link>
             </member>
             <member>
index d1b9c7d..f00eab4 100644 (file)
@@ -75,9 +75,6 @@ vars = macrovar(f)
             <member>
                 <link linkend="string">string</link>
             </member>
-            <member>
-                <link linkend="macr2lst">macr2lst</link>
-            </member>
         </simplelist>
     </refsection>
 </refentry>
index 8f5b823..f849669 100644 (file)
 //test of line numbering in  functions, handling initial comments
 // ================ Test 1 =====================================================
 function foo,endfunction
-L=macr2lst(foo);
-R1=L(4)(1)=='15'&size(L)==6
- R1  =
-  T  
+L=macr2tree(foo);
+R1=L(6)==1&size(L)==6;
 if ~R1 then bugmes();quit;end
 clear foo;
 // ================ Test 2 =====================================================
-function foo,,endfunction
-L=macr2lst(foo);
-R2=L(4)(1)=='15'&size(L)==6
- R2  =
-  T  
-if ~R2 then bugmes();quit;end
-clear foo;
+// known syntax error in scilab 6
+//function foo,,endfunction
+//L=macr2tree(foo);
+//R2=L(6)==1&size(L)==6
+//if ~R2 then bugmes();quit;end
+//clear foo;
 // ================ Test 3 =====================================================
 function foo(),endfunction
-L=macr2lst(foo);
-R3=L(4)(1)=='15'&size(L)==6
- R3  =
-  T  
+L=macr2tree(foo);
+R3=L(6)==1&size(L)==6;
 if ~R3 then bugmes();quit;end
 clear foo;
 // ================ Test 4 =====================================================
 function foo(),a=1,endfunction
-L=macr2lst(foo);
-R4=L(4)(1)=='6'&size(L)==8
- R4  =
-  T  
+L=macr2tree(foo);
+R4=L(6)==1&size(L)==6;
 if ~R4 then bugmes();quit;end
 clear foo;
 // ================ Test 5 =====================================================
 function foo
 endfunction
-L=macr2lst(foo);
-R5=L(4)(1)=='15'&size(L)==7
- R5  =
-  T  
+L=macr2tree(foo);
+R5=L(6)==2&size(L)==6;
 if ~R5 then bugmes();quit;end
 clear foo;
 // ================ Test 6 =====================================================
 function foo,
 endfunction
-L=macr2lst(foo);
-R6=L(4)(1)=='15'&size(L)==7
- R6  =
-  T  
+L=macr2tree(foo);
+R6=L(6)==2&size(L)==6;
 if ~R6 then bugmes();quit;end
 clear foo;
 // ================ Test 7 =====================================================
 function foo//ZZZZ
 endfunction
-L=macr2lst(foo);
-R7=L(4)(1)=='31'&L(5)(1)=='15'&size(L)==8
- R7  =
-  T  
+L=macr2tree(foo);
+R7=L(6)==2&size(L)==6;
 if ~R7 then bugmes();quit;end
 clear foo;
 // ================ Test 8 =====================================================
 function foo,//ZZZZ
 endfunction
-L=macr2lst(foo);
-R8=L(4)(1)=='31'&L(5)(1)=='15'&size(L)==8
- R8  =
-  T  
+L=macr2tree(foo);
+R8=L(6)==2&size(L)==6;
 if ~R8 then bugmes();quit;end
 clear foo;
 // ================ Test 9 =====================================================
 function foo
-//ZZZZ
+    //ZZZZ
 endfunction
-L=macr2lst(foo);
-R9=L(4)(1)=='15'&L(5)(1)=='31'&size(L)==9
- R9  =
-  T  
+L=macr2tree(foo);
+R9=L(6)==3&size(L)==6;
 if ~R9 then bugmes();quit;end
 clear foo;
 // ================ Test 10 ====================================================
 function foo,//ZZZZ
-  a=1
+    a=1
 endfunction
-L=macr2lst(foo);
-R10=L(4)(1)=='31'&L(5)(1)=='15'&L(6)(1)=='6'&size(L)==11
- R10  =
-  T  
+L=macr2tree(foo);
+R10=L(6)==3&size(L)==6;
 if ~R10 then bugmes();quit;end
 clear foo;
 // ================ Test 11 ====================================================
 function loc=foo,[l,w]=where(),loc=l(1),endfunction
-R11= and(foo()==1)
- R11  =
-  T  
+R11= and(foo()==1);
 if ~R11 then bugmes();quit;end
 clear foo;
 // ================ Test 12 ====================================================
 function loc=foo,//ZZZZ
-  [l,w]=where(),loc=l(1)
+    [l,w]=where(),loc=l(1)
 endfunction
-R12= and(foo()==2)
- R12  =
-  T  
+R12= and(foo()==2);
 if ~R12 then bugmes();quit;end
 clear foo;
 // ================ Test 13 ====================================================
 function loc=foo
-//ZZZZ
-  [l,w]=where(),loc=l(1)
+    //ZZZZ
+    [l,w]=where(),loc=l(1)
 endfunction
-R13= and(foo()==3)
- R13  =
-  T  
+R13= and(foo()==3);
 if ~R13 then bugmes();quit;end
 clear foo;
 // ================ Test 14 ====================================================
 function loc=foo1()
-  [l,w]=where(),loc=l(1)
-  function loc=foo3(loc)
-    [l,w]=where(),loc=[loc,l(1:2)']
-  endfunction
-  [l,w]=where(),loc=[loc,l(1)]
-  loc=foo3(loc)
-endfunction
-R14= and(foo1()==[2,6,2,7])
- R14  =
-  T  
+    [l,w]=where(),loc=l(1)
+    function loc=foo3(loc)
+        [l,w]=where(),loc=[loc,l(1:2)']
+    endfunction
+    [l,w]=where(),loc=[loc,l(1)]
+    loc=foo3(loc)
+endfunction
+R14= and(foo1()==[2,6,2,7]);
 if ~R14 then bugmes();quit;end
 clear foo1;
 // ================ Test 15 ====================================================
 function loc=foo1()//ZZZZZZZ
-  [l,w]=where(),loc=l(1)
-  function loc=foo3(loc)
-    [l,w]=where(),loc=[loc,l(1:2)']
-  endfunction
-  [l,w]=where(),loc=[loc,l(1)]
-  loc=foo3(loc)
-endfunction
-L=macr2lst(foo1);
-R15=and(foo1()==[2,6,2,7])&(L(4)(1)=='31')&(L(5)=='15')
- R15  =
-  T  
+    [l,w]=where(),loc=l(1)
+    function loc=foo3(loc)
+        [l,w]=where(),loc=[loc,l(1:2)']
+    endfunction
+    [l,w]=where(),loc=[loc,l(1)]
+    loc=foo3(loc)
+endfunction
+L=macr2tree(foo1);
+R15=and(foo1()==[2,6,2,7])&(L(6)==8);
 if ~R15 then bugmes();quit;end
 clear foo1;
 // ================ Test 16 ====================================================
 function loc=foo1()
-  //ZZZZZZZ
-  [l,w]=where(),loc=l(1)
-  function loc=foo3(loc)
-    [l,w]=where(),loc=[loc,l(1:2)']
-  endfunction
-  [l,w]=where(),loc=[loc,l(1)]
-  loc=foo3(loc)
-endfunction
-L=macr2lst(foo1);
-R16=and(foo1()==[3,7,2,8])&(L(4)=='15')&(L(5)(1)=='31')
- R16  =
-  T  
+    //ZZZZZZZ
+    [l,w]=where(),loc=l(1)
+    function loc=foo3(loc)
+        [l,w]=where(),loc=[loc,l(1:2)']
+    endfunction
+    [l,w]=where(),loc=[loc,l(1)]
+    loc=foo3(loc)
+endfunction
+L=macr2tree(foo1);
+R16=and(foo1()==[3,7,2,8])&(L(6)==9);
 if ~R16 then bugmes();quit;end
 clear foo1;
 // ================ Test 17 ====================================================
 //pb execution des macros non compilee
-deff('y=foo(a,b,c)','y=a+b+c','n')
-R17=foo('aaa','bbb','cc')=='aaabbbcc'
- R17  =
-  T  
+deff("y=foo(a,b,c)","y=a+b+c","n");
+R17=foo("aaa","bbb","cc")=="aaabbbcc";
 if ~R17 then bugmes();quit;end
 clear foo
 // ================ Test 18 ====================================================
-deff('y=foo(a,b,c)',['','y=a+b+c'],'n')
-R18=foo('aaa','bbb','cc')=='aaabbbcc'
- R18  =
-  T  
+deff("y=foo(a,b,c)",["","y=a+b+c"],"n");
+R18=foo("aaa","bbb","cc")=="aaabbbcc";
 if ~R18 then bugmes();quit;end
-// ================ Test 19 ====================================================
-comp(foo)
-Warning : redefining function: foo                     . Use funcprot(0) to avoid this message
-
-R19=foo('aaa','bbb','cc')=='aaabbbcc'
- R19  =
-  T  
-if ~R19 then bugmes();quit;end
 clear foo
+// ================ Test 19 ====================================================
+// comp is obsolete since Scilab 6
+//comp(foo)
+//R19=foo('aaa','bbb','cc')=='aaabbbcc'
+//if ~R19 then bugmes();quit;end
+//clear foo
 // ================ Test 20 ====================================================
 //function definition nested in a or loop!
-z=0;R20=%t
- R20  =
-  T  
+z=0;R20=%t;
 for k=1:2
- function y=foo()
-   y=k
- endfunction
- L=macr2lst(foo);
- R20=R20&(L(4)=='15')&(L(5)(1)=='2');
- z=z+foo();
+    function y=foo()
+        y=k
+    endfunction
+    L=macr2tree(foo);
+    R20=R20&(L(6)==3);
+    z=z+foo();
 end
-R20=R20&z==3
- R20  =
-  T  
+R20=R20&z==3;
 if ~R20 then bugmes();quit;end
 // ================ Test 21 ====================================================
 //test avec getf
-t=['function foo,//ZZZZ'
-'  a=1'
-'endfunction'];
-mputl(t,TMPDIR+'/foo.sci');
-warning('off');
-exec(TMPDIR+'/foo.sci')
+t=["function foo,//ZZZZ"
+"  a=1"
+"endfunction"];
+mputl(t,TMPDIR+"/foo.sci");
+warning("off");
+exec(TMPDIR+"/foo.sci")
 function foo,//ZZZZ
   a=1
 endfunction
-warning('on');
-L=macr2lst(foo); //getf ignores declaration line comments
-R21=L(4)(1)=='31'&L(5)(1)=='15'&size(L)==11
- R21  =
-  T  
+warning("on");
+L=macr2tree(foo); //getf ignores declaration line comments
+R21=L(6)==3&size(L)==6;
 if ~R21 then bugmes();quit;end
 clear foo;
 // ================ Test 22 ====================================================
-t=['function foo'
-'//ZZZZ'
-'  a=1'
-'endfunction'];
-mputl(t,TMPDIR+'/foo.sci');
-exec(TMPDIR+'/foo.sci')
+t=["function foo"
+"//ZZZZ"
+"  a=1"
+"endfunction"];
+mputl(t,TMPDIR+"/foo.sci");
+exec(TMPDIR+"/foo.sci")
 function foo
 //ZZZZ
   a=1
 endfunction
-L=macr2lst(foo); //getf ignores declaration line comments
-R22=L(4)(1)=='15'&L(5)(1)=='31'&L(6)(1)=='15'&size(L)==12
- R22  =
-  T  
+L=macr2tree(foo); //getf ignores declaration line comments
+R22=L(6)==4&size(L)==6;
 if ~R22 then bugmes();quit;end
 clear foo;
 // ================ Test 23 ====================================================
 function foo()
-  function bar()
-    a=1
-endfunction
+    function bar()
+        a=1
+    endfunction
 endfunction
-t=fun2string(foo,'foo')
- t  =
-!function []=foo()  !
-!                   !
-!  function bar()   !
-!                   !
-!      a=1          !
-!                   !
-!  endfunction      !
-!                   !
-!endfunction        !
-if size(t,1)<>5 then bugmes();quit;end
+t=macr2tree(foo);
+t=tree2code(t);
+if size(t,1)<>6 then bugmes();quit;end
 clear foo
 function foo()
-  function bar()
-    a=1
- endfunction
+    function bar()
+        a=1
+    endfunction
 endfunction
-t1=fun2string(foo,'foo')
- t1  =
-!function []=foo()  !
-!                   !
-!  function bar()   !
-!                   !
-!      a=1          !
-!                   !
-!  endfunction      !
-!                   !
-!endfunction        !
+t1=macr2tree(foo);
+t1=tree2code(t1);
 if or(t<>t1) then bugmes();quit;end
 // ================ Test 24 ====================================================
 function test;endfunction
-L=macr2lst(test)
- L  =
-       L(1)
- test   
-       L(2)
-     []
-       L(3)
-     []
-       L(4)
- 15   
-       L(5)
- 99   
-       L(6)
- 15   
+L=macr2tree(test);
 if size(L)<>6 then bugmes();quit;end
-if L(4)<>'15'|L(5)<>'99'| L(6)<>'15' then bugmes();quit;end
+if L(6)<>1 then bugmes();quit;end
index 12a72bc..1d24829 100644 (file)
@@ -5,8 +5,6 @@
 //  This file is distributed under the same license as the Scilab package.
 // =============================================================================
 //
-// <-- NOT FIXED -->
-//
 // <-- CLI SHELL MODE -->
 // <-- ENGLISH IMPOSED -->
 //
 // ================ Test 1 =====================================================
 
 function foo,endfunction
-L=macr2lst(foo);
-R1=L(4)(1)=="15"&size(L)==6
+L=macr2tree(foo);
+R1=L(6)==1&size(L)==6;
 if ~R1 then pause,end
 clear foo;
 
 // ================ Test 2 =====================================================
-
-function foo,,endfunction
-L=macr2lst(foo);
-R2=L(4)(1)=="15"&size(L)==6
-if ~R2 then pause,end
-clear foo;
+// known syntax error in scilab 6
+//function foo,,endfunction
+//L=macr2tree(foo);
+//R2=L(6)==1&size(L)==6
+//if ~R2 then pause,end
+//clear foo;
 
 // ================ Test 3 =====================================================
 
 function foo(),endfunction
-L=macr2lst(foo);
-R3=L(4)(1)=="15"&size(L)==6
+L=macr2tree(foo);
+R3=L(6)==1&size(L)==6;
 if ~R3 then pause,end
 clear foo;
 
 // ================ Test 4 =====================================================
 
 function foo(),a=1,endfunction
-L=macr2lst(foo);
-R4=L(4)(1)=="6"&size(L)==8
+L=macr2tree(foo);
+R4=L(6)==1&size(L)==6;
 if ~R4 then pause,end
 clear foo;
 
@@ -77,8 +75,8 @@ clear foo;
 
 function foo
 endfunction
-L=macr2lst(foo);
-R5=L(4)(1)=="15"&size(L)==7
+L=macr2tree(foo);
+R5=L(6)==2&size(L)==6;
 if ~R5 then pause,end
 clear foo;
 
@@ -86,8 +84,8 @@ clear foo;
 
 function foo,
 endfunction
-L=macr2lst(foo);
-R6=L(4)(1)=="15"&size(L)==7
+L=macr2tree(foo);
+R6=L(6)==2&size(L)==6;
 if ~R6 then pause,end
 clear foo;
 
@@ -95,8 +93,8 @@ clear foo;
 
 function foo//ZZZZ
 endfunction
-L=macr2lst(foo);
-R7=L(4)(1)=="31"&L(5)(1)=="15"&size(L)==8
+L=macr2tree(foo);
+R7=L(6)==2&size(L)==6;
 if ~R7 then pause,end
 clear foo;
 
@@ -104,8 +102,8 @@ clear foo;
 
 function foo,//ZZZZ
 endfunction
-L=macr2lst(foo);
-R8=L(4)(1)=="31"&L(5)(1)=="15"&size(L)==8
+L=macr2tree(foo);
+R8=L(6)==2&size(L)==6;
 if ~R8 then pause,end
 clear foo;
 
@@ -114,8 +112,8 @@ clear foo;
 function foo
     //ZZZZ
 endfunction
-L=macr2lst(foo);
-R9=L(4)(1)=="15"&L(5)(1)=="31"&size(L)==9
+L=macr2tree(foo);
+R9=L(6)==3&size(L)==6;
 if ~R9 then pause,end
 clear foo;
 
@@ -124,15 +122,15 @@ clear foo;
 function foo,//ZZZZ
     a=1
 endfunction
-L=macr2lst(foo);
-R10=L(4)(1)=="31"&L(5)(1)=="15"&L(6)(1)=="6"&size(L)==11
+L=macr2tree(foo);
+R10=L(6)==3&size(L)==6;
 if ~R10 then pause,end
 clear foo;
 
 // ================ Test 11 ====================================================
 
 function loc=foo,[l,w]=where(),loc=l(1),endfunction
-R11= and(foo()==1)
+R11= and(foo()==1);
 if ~R11 then pause,end
 clear foo;
 
@@ -141,7 +139,7 @@ clear foo;
 function loc=foo,//ZZZZ
     [l,w]=where(),loc=l(1)
 endfunction
-R12= and(foo()==2)
+R12= and(foo()==2);
 if ~R12 then pause,end
 clear foo;
 
@@ -151,7 +149,7 @@ function loc=foo
     //ZZZZ
     [l,w]=where(),loc=l(1)
 endfunction
-R13= and(foo()==3)
+R13= and(foo()==3);
 if ~R13 then pause,end
 clear foo;
 
@@ -165,7 +163,7 @@ function loc=foo1()
     [l,w]=where(),loc=[loc,l(1)]
     loc=foo3(loc)
 endfunction
-R14= and(foo1()==[2,6,2,7])
+R14= and(foo1()==[2,6,2,7]);
 if ~R14 then pause,end
 clear foo1;
 
@@ -179,8 +177,8 @@ function loc=foo1()//ZZZZZZZ
     [l,w]=where(),loc=[loc,l(1)]
     loc=foo3(loc)
 endfunction
-L=macr2lst(foo1);
-R15=and(foo1()==[2,6,2,7])&(L(4)(1)=="31")&(L(5)=="15")
+L=macr2tree(foo1);
+R15=and(foo1()==[2,6,2,7])&(L(6)==8);
 if ~R15 then pause,end
 clear foo1;
 
@@ -195,45 +193,46 @@ function loc=foo1()
     [l,w]=where(),loc=[loc,l(1)]
     loc=foo3(loc)
 endfunction
-L=macr2lst(foo1);
-R16=and(foo1()==[3,7,2,8])&(L(4)=="15")&(L(5)(1)=="31")
+L=macr2tree(foo1);
+R16=and(foo1()==[3,7,2,8])&(L(6)==9);
 if ~R16 then pause,end
 clear foo1;
 
 // ================ Test 17 ====================================================
 
 //pb execution des macros non compilee
-deff("y=foo(a,b,c)","y=a+b+c","n")
-R17=foo("aaa","bbb","cc")=="aaabbbcc"
+deff("y=foo(a,b,c)","y=a+b+c","n");
+R17=foo("aaa","bbb","cc")=="aaabbbcc";
 if ~R17 then pause,end
 clear foo
 
 // ================ Test 18 ====================================================
 
-deff("y=foo(a,b,c)",["","y=a+b+c"],"n")
-R18=foo("aaa","bbb","cc")=="aaabbbcc"
+deff("y=foo(a,b,c)",["","y=a+b+c"],"n");
+R18=foo("aaa","bbb","cc")=="aaabbbcc";
 if ~R18 then pause,end
+clear foo
 
 // ================ Test 19 ====================================================
-
-comp(foo)
-R19=foo("aaa","bbb","cc")=="aaabbbcc"
-if ~R19 then pause,end
-clear foo
+// comp is obsolete since Scilab 6
+//comp(foo)
+//R19=foo('aaa','bbb','cc')=='aaabbbcc'
+//if ~R19 then pause,end
+//clear foo
 
 // ================ Test 20 ====================================================
 
 //function definition nested in a or loop!
-z=0;R20=%t
+z=0;R20=%t;
 for k=1:2
     function y=foo()
         y=k
     endfunction
-    L=macr2lst(foo);
-    R20=R20&(L(4)=="15")&(L(5)(1)=="2");
+    L=macr2tree(foo);
+    R20=R20&(L(6)==3);
     z=z+foo();
 end
-R20=R20&z==3
+R20=R20&z==3;
 if ~R20 then pause,end
 
 // ================ Test 21 ====================================================
@@ -246,8 +245,8 @@ mputl(t,TMPDIR+"/foo.sci");
 warning("off");
 exec(TMPDIR+"/foo.sci")
 warning("on");
-L=macr2lst(foo); //getf ignores declaration line comments
-R21=L(4)(1)=="31"&L(5)(1)=="15"&size(L)==11
+L=macr2tree(foo); //getf ignores declaration line comments
+R21=L(6)==3&size(L)==6;
 if ~R21 then pause,end
 clear foo;
 
@@ -259,8 +258,8 @@ t=["function foo"
 "endfunction"];
 mputl(t,TMPDIR+"/foo.sci");
 exec(TMPDIR+"/foo.sci")
-L=macr2lst(foo); //getf ignores declaration line comments
-R22=L(4)(1)=="15"&L(5)(1)=="31"&L(6)(1)=="15"&size(L)==12
+L=macr2tree(foo); //getf ignores declaration line comments
+R22=L(6)==4&size(L)==6;
 if ~R22 then pause,end
 clear foo;
 
@@ -270,8 +269,10 @@ function foo()
         a=1
     endfunction
 endfunction
-t=fun2string(foo,"foo")
-if size(t,1)<>5 then pause,end
+
+t=macr2tree(foo);
+t=tree2code(t);
+if size(t,1)<>6 then pause,end
 
 clear foo
 function foo()
@@ -279,10 +280,12 @@ function foo()
         a=1
     endfunction
 endfunction
-t1=fun2string(foo,"foo")
+
+t1=macr2tree(foo);
+t1=tree2code(t1);
 if or(t<>t1) then pause,end
 // ================ Test 24 ====================================================
 function test;endfunction
-L=macr2lst(test)
+L=macr2tree(test);
 if size(L)<>6 then pause,end
-if L(4)<>"15"|L(5)<>"99"| L(6)<>"15" then pause,end
+if L(6)<>1 then pause,end
diff --git a/scilab/modules/string/macros/%mc_string.sci b/scilab/modules/string/macros/%mc_string.sci
deleted file mode 100644 (file)
index a1896ea..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) DIGITEO - 2011 - Allan CORNET
-// Copyright (C) INRIA - 2011 - Serge STEER
-//
-// 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.1-en.txt
-
-function [vars_out, vars_in, fun_text] = %mc_string(pfunc)
-
-    vars_out = [];
-    vars_in = [];
-    fun_text = [];
-
-    if type(pfunc) <> 13 then
-        error(999, msprintf(gettext("%s: Wrong type for input argument #%d: a function expected.\n"), "string", 1));
-    end
-
-    //fun2string referenced to make its subfunctions known there
-    prot = funcprot();
-    funcprot(0);
-    fun2string = fun2string;
-    funcprot(prot);
-    //get the function pseudo code
-    lst = mmodlst(macr2lst(pfunc));
-
-    //get the input and output variable names
-    vars_in = lst(3);
-    vars_out = lst(2);
-
-    //re-generate the source code from pseudo-code (see fun2string)
-    lcount = 1;
-    level = [0, 0];
-    quote = "''";
-    dquote = """";
-    CR = "\" + ascii(10);
-    opstable();
-    sciexp = 0;
-    crp = ins2sci(lst, 4);
-    fun_text = crp(1:$-2);
-    if fun_text(1) == "" then fun_text(1) = " ", end
-    if fun_text($) == "" then fun_text($) = " ", end
-
-endfunction