summaryrefslogtreecommitdiff
path: root/2.3-1/macros/ASTManagement
diff options
context:
space:
mode:
authorAbhinav Dronamraju2017-07-10 22:08:27 +0530
committerAbhinav Dronamraju2017-07-10 22:08:27 +0530
commitf80b5800ddb8417530f68049f6895beccb89cadf (patch)
tree564a23878bc400ecc0873bb4b1f5b172af22cfc6 /2.3-1/macros/ASTManagement
parentc1874d367d68cb47b82cc7a1173caaf38e9e3d68 (diff)
parent2e9eadc75e51483c41a30544496b4e05c0cf7c41 (diff)
downloadScilab2C-f80b5800ddb8417530f68049f6895beccb89cadf.tar.gz
Scilab2C-f80b5800ddb8417530f68049f6895beccb89cadf.tar.bz2
Scilab2C-f80b5800ddb8417530f68049f6895beccb89cadf.zip
Pulled from upstream master
Diffstat (limited to '2.3-1/macros/ASTManagement')
-rw-r--r--2.3-1/macros/ASTManagement/%funcall_string.sci2
-rw-r--r--2.3-1/macros/ASTManagement/AST2Ccode.sci35
-rw-r--r--2.3-1/macros/ASTManagement/AST_HandleCC.sci14
-rw-r--r--2.3-1/macros/ASTManagement/AST_HandleEndGenFun.sci17
-rw-r--r--2.3-1/macros/ASTManagement/AST_HandleFunCC.sci81
-rw-r--r--2.3-1/macros/ASTManagement/AST_HandleFunRC.sci79
-rw-r--r--2.3-1/macros/ASTManagement/AST_HandleFuncArray.sci63
-rw-r--r--2.3-1/macros/ASTManagement/AST_HandleFuncArray2D.sci69
-rw-r--r--2.3-1/macros/ASTManagement/AST_HandleRC.sci52
-rw-r--r--2.3-1/macros/ASTManagement/AST_ParseIfExprStruct.sci2
-rw-r--r--2.3-1/macros/ASTManagement/AST_ParseOperStruct.sci1
-rw-r--r--2.3-1/macros/ASTManagement/_funcall_string.sci1
-rw-r--r--2.3-1/macros/ASTManagement/libbin1908 -> 0 bytes
-rw-r--r--2.3-1/macros/ASTManagement/names2
14 files changed, 306 insertions, 112 deletions
diff --git a/2.3-1/macros/ASTManagement/%funcall_string.sci b/2.3-1/macros/ASTManagement/%funcall_string.sci
index 0ee97016..fc4b929b 100644
--- a/2.3-1/macros/ASTManagement/%funcall_string.sci
+++ b/2.3-1/macros/ASTManagement/%funcall_string.sci
@@ -5,6 +5,8 @@ function txt=%funcall_string(F)
// rhs : a list
// name : string, the name of the function
// lhsnb: number, the number of function lhs
+// Modified By: Ukasha Noor
+
if F.name <> 'disp'
txt=['Funcall : '+F.name
diff --git a/2.3-1/macros/ASTManagement/AST2Ccode.sci b/2.3-1/macros/ASTManagement/AST2Ccode.sci
index 563f3133..20aa999e 100644
--- a/2.3-1/macros/ASTManagement/AST2Ccode.sci
+++ b/2.3-1/macros/ASTManagement/AST2Ccode.sci
@@ -11,6 +11,7 @@ function AST2Ccode(FileInfoDatFile)
//
// Status:
// 11-May-2007 -- Raffaele Nutricato: Author.
+// 15-June-2017 -- Ukasha Noor: Revised By
//
// Copyright 2007 Raffaele Nutricato.
// Contact: raffaele.nutricato@tiscali.it
@@ -42,6 +43,8 @@ load(FileInfo.SharedInfoDatFile,'SharedInfo');
nxtscifunname = SharedInfo.NextSCIFunName;
nxtscifunnumber = SharedInfo.NextSCIFunNumber;
ReportFileName = FileInfo.Funct(nxtscifunnumber).ReportFileName;
+SharedInfo.Function_list = [];
+SharedInfo.Function_list_index = 1;
// ---------------------------------
// --- Parameter Initialization. ---
@@ -64,6 +67,8 @@ STACKDEDUG = 0; // 1 -> Every Pop and Push operation on the stack, the stack con
global disp_isthere
disp_isthere = 0;
+
+FName = null
// -------------------------------------
// --- End parameter Initialization. ---
// -------------------------------------
@@ -144,9 +149,13 @@ while ~meof(fidAST)
case 'EndOperation' then
[disp_isthere,FileInfo,SharedInfo] = AST_HandleEndGenFun(disp_isthere,FileInfo,SharedInfo,'Operation');
case 'EndFuncall' then
+ if rc_count > 0 & cc_count == 0
+ [EqualInArgName,EqualInArgScope,EqualNInArg,FName] = AST_HandleFuncArray(FileInfo,SharedInfo);
+ elseif cc_count > 0
+ [EqualInArgName,EqualInArgScope,EqualNInArg,FName] = AST_HandleFuncArray2D(FileInfo,SharedInfo);
+ else
[disp_isthere,FileInfo,SharedInfo] = AST_HandleEndGenFun(disp_isthere,FileInfo,SharedInfo,'Funcall');
- disp(disp_isthere);
-
+ end
// --------------
// --- Equal. ---
// --------------
@@ -156,10 +165,10 @@ while ~meof(fidAST)
//NUT: ho miste ins e variabili, per esempio [c(1,1), a] = twooutfun();
//NUT: in questo caso solo una delle due equal va scartata.
if rc_count > 0 & cc_count == 0
- [FileInfo,SharedInfo] = AST_HandleFunRC(FileInfo,SharedInfo);
+ [FileInfo,SharedInfo] = AST_HandleFunRC(FName,FileInfo,SharedInfo);
rc_count = 0;
elseif cc_count > 0
- [FileInfo,SharedInfo] = AST_HandleFunCC(cc_count,FileInfo,SharedInfo);
+ [FileInfo,SharedInfo] = AST_HandleFunCC(FName,cc_count,FileInfo,SharedInfo);
rc_count = 0;
cc_count = 0;
else
@@ -169,12 +178,12 @@ while ~meof(fidAST)
end
end
disp_isthere = 0;
+ FName = null
case 'Equal' then
SharedInfo.Equal.Enabled = 1; // 1 means enabled -> we are inside an equal AST block.
AST_PushASTStack(treeline);
case 'Lhs :' then
- disp(disp_isthere);
if rc_count > 0 & cc_count == 0
SharedInfo.Equal.Lhs = 1;
[EqualInArgName,EqualInArgScope,EqualNInArg] = AST_HandleRC(FileInfo,SharedInfo);
@@ -292,6 +301,22 @@ while ~meof(fidAST)
AST_PushASTStack(treeline);
end
end
+// ------------------------------------
+// -----List of functions Used--------
+// -------------------------------------
+
+SharedInfo.Function_list_index = SharedInfo.Function_list_index - 2;
+SharedInfo.Function_list = SharedInfo.Function_list(1:SharedInfo.Function_list_index);
+//To remove function repeatedly used----------
+x = size(unique(SharedInfo.Function_list));
+SharedInfo.Function_list_index = x(1);
+SharedInfo.Function_list = unique(SharedInfo.Function_list);
+
+SharedInfo.Function_list = SharedInfo.Function_list(1:SharedInfo.Function_list_index);
+
+
+
+
// --------------------------------------
// --- End main loop to read the AST. ---
// --------------------------------------
diff --git a/2.3-1/macros/ASTManagement/AST_HandleCC.sci b/2.3-1/macros/ASTManagement/AST_HandleCC.sci
index cc411549..897a06f1 100644
--- a/2.3-1/macros/ASTManagement/AST_HandleCC.sci
+++ b/2.3-1/macros/ASTManagement/AST_HandleCC.sci
@@ -8,7 +8,9 @@
// Author: Ukasha Noor
// Organization: FOSSEE, IIT Bombay
// Email: toolbox@scilab.in
-
+// This function is used for 2D array declaration
+// This function extracts the input arguments in the array and check there Name and Scope.
+// Then repush everything back to stack
function [RhsNames,RhsScope,NRhs] = AST_HandleCC(FileInfo,SharedInfo)
SCI2CNInArgCheck(argn(2),2,2)
@@ -56,14 +58,6 @@ for cntpush = cntpop:-1:1
end
-//for counterinputargs = 1:NRhs
- //#RNU_RES_B
- //disp(counterinputargs);
- //PrintStringInfo('Input Argument Number '+string(counterinputargs)+': '+RhsNames(counterinputargs).Name,...
- // ReportFileName,'file','y');
- //PrintStringInfo(' Scope: '+RhsNames(counterinputargs).Scope,...
- // ReportFileName,'file','y');
- //#RNU_RES_E
-//end
+
endfunction
diff --git a/2.3-1/macros/ASTManagement/AST_HandleEndGenFun.sci b/2.3-1/macros/ASTManagement/AST_HandleEndGenFun.sci
index 96830aa9..79ec976c 100644
--- a/2.3-1/macros/ASTManagement/AST_HandleEndGenFun.sci
+++ b/2.3-1/macros/ASTManagement/AST_HandleEndGenFun.sci
@@ -1,4 +1,3 @@
-
function [disp_isthere,FileInfo,SharedInfo] = AST_HandleEndGenFun(disp_isthere,FileInfo,SharedInfo,ASTFunType)
// function [FileInfo,SharedInfo] = AST_HandleEndGenFun(FileInfo,SharedInfo,ASTFunType)
// -----------------------------------------------------------------
@@ -28,11 +27,13 @@ function [disp_isthere,FileInfo,SharedInfo] = AST_HandleEndGenFun(disp_isthere,F
//
// Status:
// 11-Apr-2007 -- Raffaele Nutricato: Author.
+// 15-June-2017 -- Ukasha Noor : Revised By
//
// Copyright 2007 Raffaele Nutricato.
// Contact: raffaele.nutricato@tiscali.it
// -----------------------------------------------------------------
+
// ------------------------------
// --- Check input arguments. ---
// ------------------------------
@@ -74,6 +75,10 @@ disp_isthere = 0;
//NUT: verifica se ASTFunType e' veramente importante
// #RNU_RES_E
[ASTFunName,InArg,NInArg,OutArg,NOutArg] = AST_GetFuncallPrm(FileInfo,SharedInfo,ASTFunType);
+if (ASTFunType=='Funcall')
+SharedInfo.Function_list(SharedInfo.Function_list_index) = ASTFunName;
+SharedInfo.Function_list_index = SharedInfo.Function_list_index + 1;
+end
NOutArg_mod = NOutArg
if ASTFunName == 'OpLogAnd'
AST_PushASTStack('&&');
@@ -127,8 +132,10 @@ NOutArg_mod = NOutArg
PrintStringInfo(' ',ReportFileName,'both','y');
error(9999, 'SCI2CERROR: Unexpected number of output arguments for global function.');
end
- elseif(ASTFunName == 'raspi' | ASTFunName == 'raspi_close')
- SharedInfo.SkipNextFun = 1;
+ //To skip the functions for Raspberry Pi connections
+ elseif(ASTFunName == 'raspi' | ASTFunName == 'raspi_close' | ASTFunName == 'i2cdetect')
+ disp_isthere=1; // Skips the corresponding Lhs argument declaration
+ return // Skips the function call
end
// #RNU_RES_B
@@ -142,8 +149,8 @@ NOutArg_mod = NOutArg
if ASTFunName == '%sn'
ASTFunName='modsn';
- end
-
+ end
+
if (ASTFunName == 'OpEqual')
FunTypeAnnot = '';
FunSizeAnnot = '';
diff --git a/2.3-1/macros/ASTManagement/AST_HandleFunCC.sci b/2.3-1/macros/ASTManagement/AST_HandleFunCC.sci
index 1942c749..8669ad1f 100644
--- a/2.3-1/macros/ASTManagement/AST_HandleFunCC.sci
+++ b/2.3-1/macros/ASTManagement/AST_HandleFunCC.sci
@@ -8,11 +8,14 @@
// Author: Ukasha Noor
// Organization: FOSSEE, IIT Bombay
// Email: toolbox@scilab.in
+// This function put the input elements of array in InArg and
+// output in OutArg from the stack.
+// Then finds the number of columns and rows in matrix and the type of matrix.
+// The call the function to generate the C code for declaration.
+function [FileInfo,SharedInfo] = AST_HandleFunCC(FName,NCol,FileInfo,SharedInfo)
-function [FileInfo,SharedInfo] = AST_HandleFunCC(NCol,FileInfo,SharedInfo)
-
-SCI2CNInArgCheck(argn(2),3,3)
+SCI2CNInArgCheck(argn(2),4,4)
// ------------------------------
// --- Check input arguments. ---
@@ -140,30 +143,56 @@ for i = 1:NInArg
end
-if com_type == 0
- PrintStringInfo(' Generating Out Arg names.',ReportFileName,'file','y');
- OutArg(1).Type = InArg(1).Type;
- OutArg(1).Size(1) = string(NCol);
- OutArg(1).Size(2) = string(NRow);
- OutArg(1).Dimension = 2;
- OutArg(1).Value = InArg(1).Value;
- OutArg(1).FindLike = InArg(1).FindLike;
-elseif com_type == 1
- PrintStringInfo(' Generating Out Arg names.',ReportFileName,'file','y');
- OutArg(1).Type = 'z';
- OutArg(1).Size(1) = string(NCol);
- OutArg(1).Size(2) = string(NRow);
- OutArg(1).Dimension = 2;
- OutArg(1).Value = InArg(1).Value;
- OutArg(1).FindLike = InArg(1).FindLike;
+if FName <> null
+ PrintStringInfo(' Generating Out Arg names.',ReportFileName,'file','y');
+ if FName == 'float'
+ OutArg(1).Type = 's';
+ elseif FName == 'uint8'
+ OutArg(1).Type = 'u8';
+ elseif FName == 'int16'
+ OutArg(1).Type = 'i16';
+ elseif FName == 'uint16'
+ OutArg(1).Type = 'u16';
+ elseif FName == 'int8'
+ OutArg(1).Type = 'i8';
+ elseif FName == 'uint32'
+ OutArg(1).Type = 'u32';
+ elseif FName == 'int32'
+ OutArg(1).Type = 'i32';
+ else
+ OutArg(1).Type = 'd';
+ end
+ OutArg(1).Size(1) = string(NCol);
+ OutArg(1).Size(2) = string(NRow);
+ OutArg(1).Dimension = 2;
+ OutArg(1).Value = InArg(1).Value;
+ OutArg(1).FindLike = InArg(1).FindLike;
else
- PrintStringInfo(' Generating Out Arg names.',ReportFileName,'file','y');
- OutArg(1).Type = 'c';
- OutArg(1).Size(1) = string(NCol);
- OutArg(1).Size(2) = string(NRow);
- OutArg(1).Dimension = 2;
- OutArg(1).Value = InArg(1).Value;
- OutArg(1).FindLike = InArg(1).FindLike;
+ if com_type == 0
+ PrintStringInfo(' Generating Out Arg names.',ReportFileName,'file','y');
+ OutArg(1).Type = InArg(1).Type;
+ OutArg(1).Size(1) = string(NCol);
+ OutArg(1).Size(2) = string(NRow);
+ OutArg(1).Dimension = 2;
+ OutArg(1).Value = InArg(1).Value;
+ OutArg(1).FindLike = InArg(1).FindLike;
+ elseif com_type == 1
+ PrintStringInfo(' Generating Out Arg names.',ReportFileName,'file','y');
+ OutArg(1).Type = 'z';
+ OutArg(1).Size(1) = string(NCol);
+ OutArg(1).Size(2) = string(NRow);
+ OutArg(1).Dimension = 2;
+ OutArg(1).Value = InArg(1).Value;
+ OutArg(1).FindLike = InArg(1).FindLike;
+ else
+ PrintStringInfo(' Generating Out Arg names.',ReportFileName,'file','y');
+ OutArg(1).Type = 'c';
+ OutArg(1).Size(1) = string(NCol);
+ OutArg(1).Size(2) = string(NRow);
+ OutArg(1).Dimension = 2;
+ OutArg(1).Value = InArg(1).Value;
+ OutArg(1).FindLike = InArg(1).FindLike;
+ end
end
//--- Check for output Argument in symbol table ---//
diff --git a/2.3-1/macros/ASTManagement/AST_HandleFunRC.sci b/2.3-1/macros/ASTManagement/AST_HandleFunRC.sci
index d3169249..a5885d57 100644
--- a/2.3-1/macros/ASTManagement/AST_HandleFunRC.sci
+++ b/2.3-1/macros/ASTManagement/AST_HandleFunRC.sci
@@ -8,10 +8,13 @@
// Author: Ukasha Noor
// Organization: FOSSEE, IIT Bombay
// Email: toolbox@scilab.in
+// This function is used for 1D array declaration.
+// Checks the input and output argumnets and put them in respective variables.
+// Then calls the function to generate the C code for 1D array declaration.
-function [FileInfo,SharedInfo] = AST_HandleFunRC(FileInfo,SharedInfo)
+function [FileInfo,SharedInfo] = AST_HandleFunRC(FName,FileInfo,SharedInfo)
-SCI2CNInArgCheck(argn(2),2,2)
+SCI2CNInArgCheck(argn(2),3,3)
// ------------------------------
// --- Check input arguments. ---
@@ -142,30 +145,56 @@ for i = 1:NInArg
end
-if com_type == 0
- PrintStringInfo(' Generating Out Arg names.',ReportFileName,'file','y');
- OutArg(1).Type = InArg(1).Type;
- OutArg(1).Size(1) = '1'
- OutArg(1).Size(2) = string(size_count);
- OutArg(1).Dimension = 2;
- OutArg(1).Value = InArg(1).Value;
- OutArg(1).FindLike = InArg(1).FindLike;
-elseif com_type == 1
- PrintStringInfo(' Generating Out Arg names.',ReportFileName,'file','y');
- OutArg(1).Type = 'z';
- OutArg(1).Size(1) = '1'
- OutArg(1).Size(2) = string(size_count);
- OutArg(1).Dimension = 2;
- OutArg(1).Value = InArg(1).Value;
- OutArg(1).FindLike = InArg(1).FindLike;
+if FName <> null
+ PrintStringInfo(' Generating Out Arg names.',ReportFileName,'file','y');
+ if FName == 'float'
+ OutArg(1).Type = 's';
+ elseif FName == 'uint8'
+ OutArg(1).Type = 'u8';
+ elseif FName == 'int16'
+ OutArg(1).Type = 'i16';
+ elseif FName == 'uint16'
+ OutArg(1).Type = 'u16';
+ elseif FName == 'int8'
+ OutArg(1).Type = 'i8';
+ elseif FName == 'uint32'
+ OutArg(1).Type = 'u32';
+ elseif FName == 'int32'
+ OutArg(1).Type = 'i32';
+ else
+ OutArg(1).Type = 'd';
+ end
+ OutArg(1).Size(1) = '1'
+ OutArg(1).Size(2) = string(size_count);
+ OutArg(1).Dimension = 2;
+ OutArg(1).Value = InArg(1).Value;
+ OutArg(1).FindLike = InArg(1).FindLike;
else
- PrintStringInfo(' Generating Out Arg names.',ReportFileName,'file','y');
- OutArg(1).Type = 'c';
- OutArg(1).Size(1) = '1'
- OutArg(1).Size(2) = string(size_count);
- OutArg(1).Dimension = 2;
- OutArg(1).Value = InArg(1).Value;
- OutArg(1).FindLike = InArg(1).FindLike;
+ if com_type == 0
+ PrintStringInfo(' Generating Out Arg names.',ReportFileName,'file','y');
+ OutArg(1).Type = InArg(1).Type;
+ OutArg(1).Size(1) = '1'
+ OutArg(1).Size(2) = string(size_count);
+ OutArg(1).Dimension = 2;
+ OutArg(1).Value = InArg(1).Value;
+ OutArg(1).FindLike = InArg(1).FindLike;
+ elseif com_type == 1
+ PrintStringInfo(' Generating Out Arg names.',ReportFileName,'file','y');
+ OutArg(1).Type = 'z';
+ OutArg(1).Size(1) = '1'
+ OutArg(1).Size(2) = string(size_count);
+ OutArg(1).Dimension = 2;
+ OutArg(1).Value = InArg(1).Value;
+ OutArg(1).FindLike = InArg(1).FindLike;
+ else
+ PrintStringInfo(' Generating Out Arg names.',ReportFileName,'file','y');
+ OutArg(1).Type = 'c';
+ OutArg(1).Size(1) = '1'
+ OutArg(1).Size(2) = string(size_count);
+ OutArg(1).Dimension = 2;
+ OutArg(1).Value = InArg(1).Value;
+ OutArg(1).FindLike = InArg(1).FindLike;
+ end
end
//--- Check for output Argument in symbol table ---//
diff --git a/2.3-1/macros/ASTManagement/AST_HandleFuncArray.sci b/2.3-1/macros/ASTManagement/AST_HandleFuncArray.sci
new file mode 100644
index 00000000..364e305e
--- /dev/null
+++ b/2.3-1/macros/ASTManagement/AST_HandleFuncArray.sci
@@ -0,0 +1,63 @@
+function [RhsNames,RhsScope,NRhs,FName] = AST_HandleFuncArray(FileInfo,SharedInfo)
+// Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+// 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
+// Author: Ukasha Noor
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+// This function is used for 1D array declaration.
+
+SCI2CNInArgCheck(argn(2),2,2)
+
+ReportFileName = FileInfo.Funct(nxtscifunnumber).ReportFileName;
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+
+
+global SCI2CSTACK
+global StackPosition;
+global STACKDEDUG
+// ---------------------------
+// --- End Initialization. ---
+// ---------------------------
+
+
+// ------------------------------
+// --- Read input parameters. ---
+// ------------------------------
+cntpop = 1;
+NRhs = 0;
+RhsField(cntpop) = AST_PopASTStack();
+RhsNames = [];
+while (RhsField(cntpop) ~= 'Rhs :')
+ NRhs = NRhs + 1;
+ if RhsField(cntpop) <> 'Operands:'
+ [RhsNames(NRhs),RhsScope(NRhs)] = AST_ExtractNameAndScope(RhsField(cntpop));
+ end
+ cntpop = cntpop + 1;
+ RhsField(cntpop) = AST_PopASTStack();
+end
+first = AST_PopASTStack();
+second = AST_PopASTStack();
+
+FName = stripblanks(part(second,12:length(second)));
+
+RhsNames = SCI2Cflipud(RhsNames);
+RhsScope = SCI2Cflipud(RhsScope);
+
+// --- Repush everything into the stack. ---
+for cntpush = cntpop:-1:1
+ if RhsField(cntpush) <> 'Operands:' & RhsField(cntpush) <> 'Rhs :'
+ AST_PushASTStack(RhsField(cntpush));
+ end
+end
+
+
+
+endfunction
diff --git a/2.3-1/macros/ASTManagement/AST_HandleFuncArray2D.sci b/2.3-1/macros/ASTManagement/AST_HandleFuncArray2D.sci
new file mode 100644
index 00000000..859c9942
--- /dev/null
+++ b/2.3-1/macros/ASTManagement/AST_HandleFuncArray2D.sci
@@ -0,0 +1,69 @@
+// Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+// 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
+// Author: Ukasha Noor
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+// This function is used for 2D array declaration
+// This function extracts the input arguments in the array and check there Name and Scope.
+// Then repush everything back to stack
+function [RhsNames,RhsScope,NRhs,FName] = AST_HandleFuncArray2D(FileInfo,SharedInfo)
+
+SCI2CNInArgCheck(argn(2),2,2)
+
+ReportFileName = FileInfo.Funct(nxtscifunnumber).ReportFileName;
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+
+
+global SCI2CSTACK
+global StackPosition;
+global STACKDEDUG
+// ---------------------------
+// --- End Initialization. ---
+// ---------------------------
+
+
+// ------------------------------
+// --- Read input parameters. ---
+// ------------------------------
+cntpop = 1;
+NRhs = 0;
+RhsField(cntpop) = AST_PopASTStack();
+RhsNames = [];
+while (RhsField(cntpop) ~= 'Rhs :')
+ if RhsField(cntpop) <> 'Operands:' & RhsField(cntpop) <> 'Begin:'
+ NRhs = NRhs + 1;
+
+ [RhsNames(NRhs),RhsScope(NRhs)] = AST_ExtractNameAndScope(RhsField(cntpop));
+ end
+ cntpop = cntpop + 1;
+ RhsField(cntpop) = AST_PopASTStack();
+end
+
+first = AST_PopASTStack();
+second = AST_PopASTStack();
+
+FName = stripblanks(part(second,12:length(second)));
+
+RhsNames = SCI2Cflipud(RhsNames);
+RhsScope = SCI2Cflipud(RhsScope);
+
+// --- Repush everything into the stack. ---
+for cntpush = cntpop:-1:1
+ if RhsField(cntpush) <> 'Operands:' & RhsField(cntpush) <> 'Begin:' & RhsField(cntpush) <> 'Rhs :'
+ PrintStringInfo(' ' + RhsField(cntpush),ReportFileName,'file','y');
+ AST_PushASTStack(RhsField(cntpush));
+ end
+end
+
+
+
+
+endfunction
diff --git a/2.3-1/macros/ASTManagement/AST_HandleRC.sci b/2.3-1/macros/ASTManagement/AST_HandleRC.sci
index 2a6cbc3f..70568612 100644
--- a/2.3-1/macros/ASTManagement/AST_HandleRC.sci
+++ b/2.3-1/macros/ASTManagement/AST_HandleRC.sci
@@ -1,36 +1,15 @@
function [RhsNames,RhsScope,NRhs] = AST_HandleRC(FileInfo,SharedInfo)
-// function [FileInfo,SharedInfo] = AST_HandleEndGenFun(FileInfo,SharedInfo,ASTFunType)
-// -----------------------------------------------------------------
-// #RNU_RES_B
-// Handles the EndFuncall, EndOperation and EndEqual tags of the AST.
-// ASTFunType can be 'Funcall', 'Operation', 'Equal'
-// Structure of Funcall:
-// overloading function for "funcall" type tlist string function
-// this is a node of the AST
-// fields:
-// rhs : a list
-// name : string, the name of the function
-// lhsnb: number, the number of function lhs
-// txt=['Funcall : '+F.name
-// ' #lhs : '+string(F.lhsnb)
-// ' Rhs : '
-// ' '+objectlist2string(F.rhs)
-// 'EndFuncall'
-// ]
-// #RNU_RES_E
-//
-// Input data:
-// //NUT: add description here
-//
-// Output data:
-// //NUT: add description here
-//
-// Status:
-// 11-Apr-2007 -- Raffaele Nutricato: Author.
-//
-// Copyright 2007 Raffaele Nutricato.
-// Contact: raffaele.nutricato@tiscali.it
-// -----------------------------------------------------------------
+// Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+// 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
+// Author: Ukasha Noor
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+// This function is used for 1D array declaration.
SCI2CNInArgCheck(argn(2),2,2)
@@ -75,14 +54,5 @@ for cntpush = cntpop:-1:1
end
-//for counterinputargs = 1:NRhs
- //#RNU_RES_B
- //disp(counterinputargs);
- // PrintStringInfo('Input Argument Number '+string(counterinputargs)+': '+RhsNames(counterinputargs).Name,...
- // ReportFileName,'file','y');
- //PrintStringInfo(' Scope: '+RhsNames(counterinputargs).Scope,...
- // ReportFileName,'file','y');
- //#RNU_RES_E
-//end
endfunction
diff --git a/2.3-1/macros/ASTManagement/AST_ParseIfExprStruct.sci b/2.3-1/macros/ASTManagement/AST_ParseIfExprStruct.sci
index 2bfb08dd..88ba2e9c 100644
--- a/2.3-1/macros/ASTManagement/AST_ParseIfExprStruct.sci
+++ b/2.3-1/macros/ASTManagement/AST_ParseIfExprStruct.sci
@@ -31,6 +31,8 @@ function [IfCondArg,NIfCondArg,Op,NOp] = AST_ParseIfExprStruct(FileInfo,SharedIn
//
// Status:
// 11-Apr-2007 -- Raffaele Nutricato: Author.
+// 25-June-2017 -- Ukasha Noor: Revised By
+// This function is counting the number of logical operators and there operands.
//
// Copyright 2007 Raffaele Nutricato.
// Contact: raffaele.nutricato@tiscali.it
diff --git a/2.3-1/macros/ASTManagement/AST_ParseOperStruct.sci b/2.3-1/macros/ASTManagement/AST_ParseOperStruct.sci
index 903f0958..ce0bcc72 100644
--- a/2.3-1/macros/ASTManagement/AST_ParseOperStruct.sci
+++ b/2.3-1/macros/ASTManagement/AST_ParseOperStruct.sci
@@ -26,6 +26,7 @@ function [FunctionName,InArg,NInArg,NOutArg] = AST_ParseOperStruct(FileInfo,Shar
//
// Status:
// 11-Apr-2007 -- Raffaele Nutricato: Author.
+// 25-June-2017 -- Ukasha Noor: Revised By
//
// Copyright 2007 Raffaele Nutricato.
// Contact: raffaele.nutricato@tiscali.it
diff --git a/2.3-1/macros/ASTManagement/_funcall_string.sci b/2.3-1/macros/ASTManagement/_funcall_string.sci
index 0ee97016..7c0b0abf 100644
--- a/2.3-1/macros/ASTManagement/_funcall_string.sci
+++ b/2.3-1/macros/ASTManagement/_funcall_string.sci
@@ -5,6 +5,7 @@ function txt=%funcall_string(F)
// rhs : a list
// name : string, the name of the function
// lhsnb: number, the number of function lhs
+// Modified By: Ukasha Noor
if F.name <> 'disp'
txt=['Funcall : '+F.name
diff --git a/2.3-1/macros/ASTManagement/lib b/2.3-1/macros/ASTManagement/lib
deleted file mode 100644
index ee07d361..00000000
--- a/2.3-1/macros/ASTManagement/lib
+++ /dev/null
Binary files differ
diff --git a/2.3-1/macros/ASTManagement/names b/2.3-1/macros/ASTManagement/names
index 6deb883d..9ba83f73 100644
--- a/2.3-1/macros/ASTManagement/names
+++ b/2.3-1/macros/ASTManagement/names
@@ -31,6 +31,8 @@ AST_HandleFor
AST_HandleForStatem
AST_HandleFunCC
AST_HandleFunRC
+AST_HandleFuncArray
+AST_HandleFuncArray2D
AST_HandleHeader
AST_HandleIfElse
AST_HandleRC