diff options
author | Brijeshcr | 2017-07-07 18:19:27 +0530 |
---|---|---|
committer | GitHub | 2017-07-07 18:19:27 +0530 |
commit | a505550d38b2b886c61863a85be67faf02ad604b (patch) | |
tree | c0424024c16aa122a5a38686dfed75a4c4866e95 /2.3-1/macros/ASTManagement | |
parent | 2a6c003c67faafd257984f4ae632e40bc6fa9a32 (diff) | |
parent | 8d1da9568248c9a0572da08a7039e75e84d782b0 (diff) | |
download | Scilab2C-a505550d38b2b886c61863a85be67faf02ad604b.tar.gz Scilab2C-a505550d38b2b886c61863a85be67faf02ad604b.tar.bz2 Scilab2C-a505550d38b2b886c61863a85be67faf02ad604b.zip |
Merge branch 'master' into master
Diffstat (limited to '2.3-1/macros/ASTManagement')
-rw-r--r-- | 2.3-1/macros/ASTManagement/%funcall_string.sci | 2 | ||||
-rw-r--r-- | 2.3-1/macros/ASTManagement/AST2Ccode.sci | 65 | ||||
-rw-r--r-- | 2.3-1/macros/ASTManagement/AST_HandleCC.sci | 14 | ||||
-rw-r--r-- | 2.3-1/macros/ASTManagement/AST_HandleEndGenFun.sci | 17 | ||||
-rw-r--r-- | 2.3-1/macros/ASTManagement/AST_HandleFunCC.sci | 81 | ||||
-rw-r--r-- | 2.3-1/macros/ASTManagement/AST_HandleFunRC.sci | 79 | ||||
-rw-r--r-- | 2.3-1/macros/ASTManagement/AST_HandleFuncArray.sci | 63 | ||||
-rw-r--r-- | 2.3-1/macros/ASTManagement/AST_HandleFuncArray2D.sci | 69 | ||||
-rw-r--r-- | 2.3-1/macros/ASTManagement/AST_HandleRC.sci | 52 | ||||
-rw-r--r-- | 2.3-1/macros/ASTManagement/AST_ParseIfExprStruct.sci | 2 | ||||
-rw-r--r-- | 2.3-1/macros/ASTManagement/AST_ParseOperStruct.sci | 1 | ||||
-rw-r--r-- | 2.3-1/macros/ASTManagement/_funcall_string.sci | 1 | ||||
-rw-r--r-- | 2.3-1/macros/ASTManagement/names | 2 |
13 files changed, 284 insertions, 164 deletions
diff --git a/2.3-1/macros/ASTManagement/%funcall_string.sci b/2.3-1/macros/ASTManagement/%funcall_string.sci index c3101cbe..449cc744 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 + <<<<<<< HEAD if F.name <> 'disp' diff --git a/2.3-1/macros/ASTManagement/AST2Ccode.sci b/2.3-1/macros/ASTManagement/AST2Ccode.sci index 5cceaf18..136c5a18 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,16 +43,13 @@ load(FileInfo.SharedInfoDatFile,'SharedInfo'); nxtscifunname = SharedInfo.NextSCIFunName; nxtscifunnumber = SharedInfo.NextSCIFunNumber; ReportFileName = FileInfo.Funct(nxtscifunnumber).ReportFileName; -<<<<<<< HEAD -======= + SharedInfo.Function_list = []; SharedInfo.Function_list_index = 1; ->>>>>>> 9e5793a7b05b23e6044a6d7a9ddd5db39ba375f0 // --------------------------------- // --- Parameter Initialization. --- // --------------------------------- -<<<<<<< HEAD global cc_count cc_count = 0; @@ -59,8 +57,6 @@ cc_count = 0; global rc_count rc_count = 0; -======= ->>>>>>> 9e5793a7b05b23e6044a6d7a9ddd5db39ba375f0 global SCI2CSTACK SCI2CSTACK = ['EMPTYSTACK']; @@ -69,12 +65,11 @@ StackPosition = 1; global STACKDEDUG STACKDEDUG = 0; // 1 -> Every Pop and Push operation on the stack, the stack content will be printed on screen. -<<<<<<< HEAD global disp_isthere disp_isthere = 0; -======= ->>>>>>> 9e5793a7b05b23e6044a6d7a9ddd5db39ba375f0 + +FName = null // ------------------------------------- // --- End parameter Initialization. --- // ------------------------------------- @@ -153,16 +148,15 @@ while ~meof(fidAST) //NUT: qui puoi anche aggiunger piu' case per specificare meglio la struttura della funcall //NUT: i case aggiunti ovviamente faranno solo il push della treeline. case 'EndOperation' then -<<<<<<< HEAD [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'); -======= - [FileInfo,SharedInfo] = AST_HandleEndGenFun(FileInfo,SharedInfo,'Operation'); - case 'EndFuncall' then - [FileInfo,SharedInfo] = AST_HandleEndGenFun(FileInfo,SharedInfo,'Funcall'); ->>>>>>> 9e5793a7b05b23e6044a6d7a9ddd5db39ba375f0 - + end // -------------- // --- Equal. --- // -------------- @@ -171,12 +165,12 @@ while ~meof(fidAST) //NUT: per fare in modo di coprire le ins, anche se ci puo' essere qualche rischio quando //NUT: ho miste ins e variabili, per esempio [c(1,1), a] = twooutfun(); //NUT: in questo caso solo una delle due equal va scartata. -<<<<<<< HEAD + 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 @@ -186,16 +180,13 @@ while ~meof(fidAST) end end disp_isthere = 0; + FName = null -======= - [FileInfo,SharedInfo] = AST_HandleEndGenFun(FileInfo,SharedInfo,'Equal'); - SharedInfo = INIT_SharedInfoEqual(SharedInfo); ->>>>>>> 9e5793a7b05b23e6044a6d7a9ddd5db39ba375f0 case 'Equal' then SharedInfo.Equal.Enabled = 1; // 1 means enabled -> we are inside an equal AST block. AST_PushASTStack(treeline); case 'Lhs :' then -<<<<<<< HEAD + if rc_count > 0 & cc_count == 0 SharedInfo.Equal.Lhs = 1; [EqualInArgName,EqualInArgScope,EqualNInArg] = AST_HandleRC(FileInfo,SharedInfo); @@ -230,21 +221,6 @@ while ~meof(fidAST) end AST_PushASTStack(treeline); end -======= - SharedInfo.Equal.Lhs = 1; // 1 means that we are inside the Lhs block of the Equal - [EqualInArgName,EqualInArgScope,EqualNInArg] = AST_ReadEqualRhsNames(FileInfo,SharedInfo); - - // lengthNumber = length('Number_'); - // if (part(EqualInArgScope,1:lengthNumber) == 'Number_') - // SharedInfo.SkipNextEqual = 1 - // end - SharedInfo.Equal.NInArg = EqualNInArg; - for tmpcnt = 1:SharedInfo.Equal.NInArg - SharedInfo.Equal.InArg(tmpcnt).Name = EqualInArgName(tmpcnt); - SharedInfo.Equal.InArg(tmpcnt).Scope = EqualInArgScope(tmpcnt); - end - AST_PushASTStack(treeline); ->>>>>>> 9e5793a7b05b23e6044a6d7a9ddd5db39ba375f0 // ---------------- // --- If/Else. --- @@ -278,10 +254,8 @@ while ~meof(fidAST) // ----------------- case 'EndProgram' SharedInfo = AST_HandleEndProgram(FileInfo,SharedInfo); -<<<<<<< HEAD + disp_isthere = 0; -======= ->>>>>>> 9e5793a7b05b23e6044a6d7a9ddd5db39ba375f0 //NUT: per essere precisi si puo' pensare di mettere un check //NUT: alla fine dell'albero per accertarsi che c'e' end program li' dove ce lo aspettiamo @@ -315,7 +289,6 @@ while ~meof(fidAST) SharedInfo = AST_HandleEndWhile(FileInfo,SharedInfo); SharedInfo.While.Level = SharedInfo.While.Level - 1; -<<<<<<< HEAD case 'Endrc' then rc_count = rc_count + 1; @@ -325,8 +298,6 @@ while ~meof(fidAST) //[FileInfo,SharedInfo] = AST_HandleRC(FileInfo,SharedInfo); -======= ->>>>>>> 9e5793a7b05b23e6044a6d7a9ddd5db39ba375f0 // ---------------- // --- Default. --- // ---------------- @@ -334,9 +305,6 @@ while ~meof(fidAST) AST_PushASTStack(treeline); end end -<<<<<<< HEAD -======= - // ------------------------------------ // -----List of functions Used-------- // ------------------------------------- @@ -350,7 +318,6 @@ SharedInfo.Function_list = unique(SharedInfo.Function_list); SharedInfo.Function_list = SharedInfo.Function_list(1:SharedInfo.Function_list_index); ->>>>>>> 9e5793a7b05b23e6044a6d7a9ddd5db39ba375f0 // -------------------------------------- // --- 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 b5208e51..fad638a3 100644 --- a/2.3-1/macros/ASTManagement/AST_HandleEndGenFun.sci +++ b/2.3-1/macros/ASTManagement/AST_HandleEndGenFun.sci @@ -1,9 +1,7 @@ -<<<<<<< HEAD function [disp_isthere,FileInfo,SharedInfo] = AST_HandleEndGenFun(disp_isthere,FileInfo,SharedInfo,ASTFunType) -======= function [FileInfo,SharedInfo] = AST_HandleEndGenFun(FileInfo,SharedInfo,ASTFunType) ->>>>>>> 9e5793a7b05b23e6044a6d7a9ddd5db39ba375f0 + // function [FileInfo,SharedInfo] = AST_HandleEndGenFun(FileInfo,SharedInfo,ASTFunType) // ----------------------------------------------------------------- // #RNU_RES_B @@ -32,19 +30,18 @@ function [FileInfo,SharedInfo] = AST_HandleEndGenFun(FileInfo,SharedInfo,ASTFunT // // 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. --- // ------------------------------ -<<<<<<< HEAD + SCI2CNInArgCheck(argn(2),4,4); -======= -SCI2CNInArgCheck(argn(2),3,3); ->>>>>>> 9e5793a7b05b23e6044a6d7a9ddd5db39ba375f0 // ----------------------- // --- Initialization. --- @@ -69,11 +66,8 @@ PrintStepInfo('Handling Funcall/Operation/Equal',FileInfo.Funct(nxtscifunnumber) global SCI2CSTACK global StackPosition; global STACKDEDUG -<<<<<<< HEAD disp_isthere = 0; -======= ->>>>>>> 9e5793a7b05b23e6044a6d7a9ddd5db39ba375f0 // --------------------------- // --- End Initialization. --- // --------------------------- @@ -85,7 +79,6 @@ disp_isthere = 0; //NUT: verifica se ASTFunType e' veramente importante // #RNU_RES_E [ASTFunName,InArg,NInArg,OutArg,NOutArg] = AST_GetFuncallPrm(FileInfo,SharedInfo,ASTFunType); -<<<<<<< HEAD NOutArg_mod = NOutArg if ASTFunName == 'OpLogAnd' AST_PushASTStack('&&'); @@ -100,13 +93,11 @@ NOutArg_mod = NOutArg disp_isthere = 1; end -======= if (ASTFunType=='Funcall') SharedInfo.Function_list(SharedInfo.Function_list_index) = ASTFunName; SharedInfo.Function_list_index = SharedInfo.Function_list_index + 1; end NOutArg_mod = NOutArg ->>>>>>> 9e5793a7b05b23e6044a6d7a9ddd5db39ba375f0 if(mtlb_strcmp(part(ASTFunName,1:2),'CV') == %T) SharedInfo.OpenCVUsed = %T; end 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 81d7e80b..d9658e81 100644 --- a/2.3-1/macros/ASTManagement/AST_ParseIfExprStruct.sci +++ b/2.3-1/macros/ASTManagement/AST_ParseIfExprStruct.sci @@ -35,6 +35,8 @@ function [IfCondArg,NIfCondArg] = AST_ParseIfExprStruct(FileInfo,SharedInfo,ASTI // // 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 2bd45fbb..cc992a9e 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 c3101cbe..5218d533 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 <<<<<<< HEAD if F.name <> 'disp' diff --git a/2.3-1/macros/ASTManagement/names b/2.3-1/macros/ASTManagement/names index 62b7d189..3045d397 100644 --- a/2.3-1/macros/ASTManagement/names +++ b/2.3-1/macros/ASTManagement/names @@ -35,6 +35,8 @@ AST_HandleForStatem <<<<<<< HEAD AST_HandleFunCC AST_HandleFunRC +AST_HandleFuncArray +AST_HandleFuncArray2D AST_HandleHeader AST_HandleIfElse AST_HandleRC |