diff options
author | Sandeep Gupta | 2017-07-05 12:41:25 +0530 |
---|---|---|
committer | Sandeep Gupta | 2017-07-05 12:41:25 +0530 |
commit | 06337f0dc8114c70fd0c7767083971a0d091750a (patch) | |
tree | 446481550ba88e6e0f7df2db7fdc66d2016ee2f1 /macros/SymbolTable | |
parent | c2e305c3b82ed944d57402dd515b3d5839a31980 (diff) | |
download | Scilab2C_fossee_old-06337f0dc8114c70fd0c7767083971a0d091750a.tar.gz Scilab2C_fossee_old-06337f0dc8114c70fd0c7767083971a0d091750a.tar.bz2 Scilab2C_fossee_old-06337f0dc8114c70fd0c7767083971a0d091750a.zip |
LinearAlgebra and MatrixOperation Update
Diffstat (limited to 'macros/SymbolTable')
18 files changed, 5 insertions, 209 deletions
diff --git a/macros/SymbolTable/ST_AnalyzeScope.bin b/macros/SymbolTable/ST_AnalyzeScope.bin Binary files differnew file mode 100644 index 0000000..7e727a0 --- /dev/null +++ b/macros/SymbolTable/ST_AnalyzeScope.bin diff --git a/macros/SymbolTable/ST_AnalyzeScope.sci b/macros/SymbolTable/ST_AnalyzeScope.sci index 8389c09..6ce9482 100644 --- a/macros/SymbolTable/ST_AnalyzeScope.sci +++ b/macros/SymbolTable/ST_AnalyzeScope.sci @@ -84,6 +84,7 @@ for cntout = 1:NOutArg // #RNU_RES_E
OutArg(cntout).Scope = 'Local';
end
+
// #RNU_RES_B
// --- Check in global symbol table. ---
// #RNU_RES_E
diff --git a/macros/SymbolTable/ST_Del.bin b/macros/SymbolTable/ST_Del.bin Binary files differnew file mode 100644 index 0000000..c26e2e5 --- /dev/null +++ b/macros/SymbolTable/ST_Del.bin diff --git a/macros/SymbolTable/ST_FindPos.bin b/macros/SymbolTable/ST_FindPos.bin Binary files differnew file mode 100644 index 0000000..c7003f3 --- /dev/null +++ b/macros/SymbolTable/ST_FindPos.bin diff --git a/macros/SymbolTable/ST_Get.bin b/macros/SymbolTable/ST_Get.bin Binary files differnew file mode 100644 index 0000000..512e72b --- /dev/null +++ b/macros/SymbolTable/ST_Get.bin diff --git a/macros/SymbolTable/ST_GetInArgInfo.bin b/macros/SymbolTable/ST_GetInArgInfo.bin Binary files differnew file mode 100644 index 0000000..6eb16e3 --- /dev/null +++ b/macros/SymbolTable/ST_GetInArgInfo.bin diff --git a/macros/SymbolTable/ST_GetInArgInfo.sci b/macros/SymbolTable/ST_GetInArgInfo.sci index 4c85408..9f5cbd4 100644 --- a/macros/SymbolTable/ST_GetInArgInfo.sci +++ b/macros/SymbolTable/ST_GetInArgInfo.sci @@ -49,13 +49,13 @@ for cntinarg = 1:NInArg tmpname = InArg(cntinarg).Name;
tmpscope = InArg(cntinarg).Scope;
lengthNumber = length('Number_');
- if (part(tmpscope,1:lengthNumber) == 'Number_')
+ if (part(tmpscope,1:lengthNumber) == 'Number_')
// #RNU_RES_B
PrintStringInfo('Input Argument '+string(cntinarg)+' is a number: '+tmpname+'.',FileInfo.Funct(nxtscifunnumber).ReportFileName,'file');
// #RNU_RES_E
UpdatedInArg(cntinarg).Type = part(tmpscope,lengthNumber+1:lengthNumber+1);
if (UpdatedInArg(cntinarg).Type == 'x')
- UpdatedInArg(cntinarg).Type = SharedInfo.DefaultPrecision; // It is the default
+ UpdatedInArg(cntinarg).Type = SharedInfo.DefaultPrecision; // It is the default.
elseif (UpdatedInArg(cntinarg).Type == 'X')
if (SharedInfo.DefaultPrecision == 's')
UpdatedInArg(cntinarg).Type = 'c'; // It is the default.
@@ -101,17 +101,6 @@ for cntinarg = 1:NInArg UpdatedInArg(cntinarg).FindLike = 0;
UpdatedInArg(cntinarg).Dimension = 0;
UpdatedInArg(cntinarg).Scope = 'Number';
- if((ASTFunName == 'cmd_analog_in' | ASTFunName == 'cmd_analog_in_volt' ) & cntinarg == 2)
- numvalue = eval(tmpname);
- if (SharedInfo.Board_name == 'mega' | SharedInfo.Board_name == 'mega2560') then
- tmpname = string(numvalue + 54)
- UpdatedInArg(cntinarg).Value = 54 + numvalue;
- else
- tmpname = string(numvalue + 14)
- UpdatedInArg(cntinarg).Value = 14 + numvalue;
- end
- UpdatedInArg(cntinarg).Name = tmpname; // Change the name.
- end
elseif (tmpscope == 'String')
// #RNU_RES_B
diff --git a/macros/SymbolTable/ST_GetSymbolInfo.bin b/macros/SymbolTable/ST_GetSymbolInfo.bin Binary files differnew file mode 100644 index 0000000..b8a7cf7 --- /dev/null +++ b/macros/SymbolTable/ST_GetSymbolInfo.bin diff --git a/macros/SymbolTable/ST_InsForCntVars.bin b/macros/SymbolTable/ST_InsForCntVars.bin Binary files differnew file mode 100644 index 0000000..12882fc --- /dev/null +++ b/macros/SymbolTable/ST_InsForCntVars.bin diff --git a/macros/SymbolTable/ST_InsOutArg.bin b/macros/SymbolTable/ST_InsOutArg.bin Binary files differnew file mode 100644 index 0000000..ec9970c --- /dev/null +++ b/macros/SymbolTable/ST_InsOutArg.bin diff --git a/macros/SymbolTable/ST_InsOutArg.sci b/macros/SymbolTable/ST_InsOutArg.sci index fd6b426..f4958ff 100644 --- a/macros/SymbolTable/ST_InsOutArg.sci +++ b/macros/SymbolTable/ST_InsOutArg.sci @@ -47,6 +47,8 @@ PrintStringInfo('***Putting output arguments in the symbol table***',ReportFileN // ---------------------------
// --- End Initialization. ---
// ---------------------------
+
+
for counteroutput = 1:NOutArg
// #RNU_RES_B
PrintStringInfo(' Symbol ""'+OutArg(counteroutput).Name+'""',ReportFileName,'file','y','n');
diff --git a/macros/SymbolTable/ST_InsOutArg_Dup.sci b/macros/SymbolTable/ST_InsOutArg_Dup.sci deleted file mode 100644 index bca6623..0000000 --- a/macros/SymbolTable/ST_InsOutArg_Dup.sci +++ /dev/null @@ -1,195 +0,0 @@ -function ST_InsOutArg_Dup(InArg,NInArg,OutArg,NOutArg,com_type,FileInfo,SharedInfo,MatchRule) -// function ST_InsOutArg(OutArg,NOutArg,FileInfo,SharedInfo,MatchRule) -// ----------------------------------------------------------------- -// //NUT: add description here -// -// Input data: -// //NUT: add description here -// -// Output data: -// //NUT: add description here -// -// Status: -// 26-Oct-2007 -- Raffaele Nutricato: Author. -// 26-Oct-2007 -- Alberto Morea: Test Ok. -// -// Copyright 2007 Raffaele Nutricato & Alberto Morea. -// Contact: raffaele.nutricato@tiscali.it -// ----------------------------------------------------------------- -SCI2CNInArgCheck(argn(2),8,8) - - -// ------------------------------ -// --- Check input arguments. --- -// ------------------------------ -//SCI2CNInArgCheck(argn(2),5,5); - -// ----------------------- -// --- Initialization. --- -// ----------------------- -nxtscifunname = SharedInfo.NextSCIFunName; -nxtscifunnumber = SharedInfo.NextSCIFunNumber; -ReportFileName = FileInfo.Funct(nxtscifunnumber).ReportFileName; -CDeclarationFileName = FileInfo.Funct(nxtscifunnumber).CDeclarationFileName; -CGblDeclarFileName = FileInfo.Funct(nxtscifunnumber).CGblDeclarFileName; - -GlobalVarsFileName = FileInfo.GlobalVarFileName; -LocalVarsFileName = FileInfo.Funct(nxtscifunnumber).LocalVarFileName; -TempVarsFileName = FileInfo.Funct(nxtscifunnumber).TempVarFileName; - -CPass1FileName = FileInfo.Funct(nxtscifunnumber).CPass1FileName; -CPass1FreeFileName = FileInfo.Funct(nxtscifunnumber).CPass1FreeFileName; - - -// #RNU_RES_B -PrintStringInfo(' ',ReportFileName,'file','y'); -PrintStringInfo('***Putting output arguments in the symbol table***',ReportFileName,'file','y','n'); -// #RNU_RES_E -// --------------------------- -// --- End Initialization. --- -// --------------------------- - - -for counteroutput = 1:NOutArg - // #RNU_RES_B - PrintStringInfo(' Symbol ""'+OutArg(counteroutput).Name+'""',ReportFileName,'file','y','n'); - PrintStringInfo(' Type: '+OutArg(counteroutput).Type,ReportFileName,'file','y','n'); - PrintStringInfo(' Size(1): '+string(OutArg(counteroutput).Size(1)),ReportFileName,'file','y','n'); - PrintStringInfo(' Size(2): '+string(OutArg(counteroutput).Size(2)),ReportFileName,'file','y','n'); - PrintStringInfo(' Value: '+string(OutArg(counteroutput).Value),ReportFileName,'file','y','n'); - PrintStringInfo(' FindLike: '+string(OutArg(counteroutput).FindLike),ReportFileName,'file','y','n'); - PrintStringInfo(' Dimension: '+string(OutArg(counteroutput).Dimension),ReportFileName,'file','y','n'); - PrintStringInfo(' Scope: '+string(OutArg(counteroutput).Scope),ReportFileName,'file','y','n'); - PrintStringInfo(' ',ReportFileName,'file','y','n'); - // #RNU_RES_E - if (OutArg(counteroutput).Scope == 'Temp') - SymbTableFileName = TempVarsFileName; - elseif (OutArg(counteroutput).Scope == 'Local') - SymbTableFileName = LocalVarsFileName; - elseif (OutArg(counteroutput).Scope == 'Global') - SymbTableFileName = GlobalVarsFileName; - else - error(9999, 'Unknown scope ""'+OutArg(counteroutput).Scope+'"" for symbol: '+OutArg(counteroutput).Name); - end - // #RNU_RES_B - PrintStringInfo(' Setting symbol ""'+OutArg(counteroutput).Name+'"" in '+SymbTableFileName+'.',ReportFileName,'file','y'); - // #RNU_RES_E - - // #RNU_RES_B - // Check existence and conflicts in the symbol table. - // Here we have four possibilities: - // 1. the symbol is a global variable not initialized yet -> we have to initialize it. - // 2. the symbol already exists with different settings -> we have to issue an error. - // 3. the symbol already exists with the same settings -> ok, we don't have to do nothing. - // 4. the symbol doesn't exist -> we have to insert it into the table. - // #RNU_RES_E - [TBFlagfound,TBFlagEqualSymbols] = ... - ST_MatchSymbol(OutArg(counteroutput).Name,... - OutArg(counteroutput).Type,... - OutArg(counteroutput).Size,... - OutArg(counteroutput).Value,... - OutArg(counteroutput).FindLike,... - OutArg(counteroutput).Dimension,... - SymbTableFileName,MatchRule); - - if (TBFlagfound == 1) - if (TBFlagEqualSymbols == 0) - PrintStringInfo(' ',ReportFileName,'both','y'); - PrintStringInfo('SCI2CERROR: Symbol Table Conflict. Trying to insert again symbol ""'+... - OutArg(counteroutput).Name+'"" with different settings',ReportFileName,'both','y'); - PrintStringInfo('SCI2CERROR: Please check that you are not using variable ""'+OutArg(counteroutput).Name+'""',ReportFileName,'both','y'); - PrintStringInfo('SCI2CERROR: with different sizes and/or types.',ReportFileName,'both','y'); - PrintStringInfo(' ',ReportFileName,'both','y'); - error(9999, 'SCI2CERROR: Symbol Table Conflict. Trying to insert again symbol ""'+... - OutArg(counteroutput).Name+'"" with different settings'); - else - // #RNU_RES_B - // It's ok symbols do match. - //NUT: forse occorre un altro check sulla size per capire se occore fare il malloc. - //NUT: qui entro anche quando ho una variabile global gia' dichiarata tale in un altro - //NUT: per cui devo dichiararala come external. - //RNU qui ci puoi mettere una warning quando stai riallocando uno stesso simbolo con size simbolica. - //RNU puoi anche aggiungere del codice in c o un semplice commento. per esempio una funzione c del tipo checksize che controlla il valore - //RNU prima dopo delle size di una data variabile. Cosa succede se cambio la size anche nel caso di array e approccio - //RNU di resize non attivo? L'unica cosa e' che molte size numeriche scompaiono e incomincio a creare numerose variabili - //RNU con size simbolica. - - // If the symbol is scalar we update its value if it is an array we update its size - // only in case we are using the 'REALLOC_ALL_RESIZE_ALL' resize approach - // #RNU_RES_E - if ((GetSymbolDimension(OutArg(counteroutput).Size)) == 0 | (SharedInfo.ResizeApproach=='REALLOC_ALL_RESIZE_ALL')) - ST_Set(OutArg(counteroutput).Name,... - OutArg(counteroutput).Type,... - OutArg(counteroutput).Size,... - OutArg(counteroutput).Value,... - OutArg(counteroutput).FindLike,... - OutArg(counteroutput).Dimension,... - SymbTableFileName); - end - - // IndentLevelDeclaration = 1; //NUT: per ora lo forzo sempre a 1 - // IndentLevelMalloc = SharedInfo.NIndent; - // FlagExt = 0; - // C_GenDeclarations(OutArg(counteroutput),CDeclarationFileName,IndentLevelDeclaration,ReportFileName,FlagExt,SharedInfo.ResizeApproach); - - - end - elseif (TBFlagfound == 2) - // #RNU_RES_B - // We have a non-initialized global variable. - // Set the non-initialized global variable. - PrintStringInfo(' Found a non-initialized global variable.',ReportFileName,'file','y'); - // #RNU_RES_E - ST_Set(OutArg(counteroutput).Name,... - OutArg(counteroutput).Type,... - OutArg(counteroutput).Size,... - OutArg(counteroutput).Value,... - OutArg(counteroutput).FindLike,... - OutArg(counteroutput).Dimension,... - SymbTableFileName); - IndentLevel = 0; //NUT: forced always to 1 - FlagExt = 0; - C_GenDeclarations(OutArg(counteroutput),CGblDeclarFileName,IndentLevel,ReportFileName,FlagExt,SharedInfo.ResizeApproach); - IndentLevelMalloc = SharedInfo.NIndent; - // #RNU_RES_B - //RNU da verificare bene qui. Cio' che si verifica e' che se la size della globale e' simbolica - //RNU allora si assume che essa sia da allocare come puntatore e poi realloc. - // #RNU_RES_E - C_MemAllocOutTempVars(OutArg(counteroutput),1,CPass1FileName,CPass1FreeFileName,IndentLevelMalloc,ReportFileName,SharedInfo.ResizeApproach); - else - if (OutArg(counteroutput).FindLike == 1) - // #RNU_RES_B - // In presence of find-like functions the size must be always symbolic. - // Don't change here the value of OutArg.Size because the first time - // I need them to declare the OutArg variable with the values assumed by OutArg.Size. - // #RNU_RES_E - TmpOutArgSize(1) = '__'+OutArg(counteroutput).Name+'Size[0]'; - TmpOutArgSize(2) = '__'+OutArg(counteroutput).Name+'Size[1]'; - else - TmpOutArgSize(1) = OutArg(counteroutput).Size(1); - TmpOutArgSize(2) = OutArg(counteroutput).Size(2); - end - // #RNU_RES_B - // Set a new symbol. - // #RNU_RES_E - ST_Set(OutArg(counteroutput).Name,... - OutArg(counteroutput).Type,... - TmpOutArgSize,... - OutArg(counteroutput).Value,... - OutArg(counteroutput).FindLike,... - OutArg(counteroutput).Dimension,... - SymbTableFileName); - IndentLevelDeclaration = 1; //NUT: per ora lo forzo sempre a 1 - IndentLevelMalloc = SharedInfo.NIndent; - FlagExt = 0; - C_GenDeclarations_Dup(InArg,NInArg,com_type,OutArg(counteroutput),CPass1FileName,IndentLevelDeclaration,ReportFileName,FlagExt,SharedInfo.ResizeApproach); - // #RNU_RES_B - //RNU aggiunta qui in modo che le malloc saranno fatte una sola volta: - //RNU verifica che tutto funzioni e chi altro usa la C_MemAlloc per capire se si puo' ottimizzare per questo stadio. - // #RNU_RES_E - C_MemAllocOutTempVars(OutArg(counteroutput),1,CPass1FileName,CPass1FreeFileName,IndentLevelMalloc,ReportFileName,SharedInfo.ResizeApproach); - end - -end - -endfunction diff --git a/macros/SymbolTable/ST_Load.bin b/macros/SymbolTable/ST_Load.bin Binary files differnew file mode 100644 index 0000000..f158c2b --- /dev/null +++ b/macros/SymbolTable/ST_Load.bin diff --git a/macros/SymbolTable/ST_MatchSymbol.bin b/macros/SymbolTable/ST_MatchSymbol.bin Binary files differnew file mode 100644 index 0000000..278560d --- /dev/null +++ b/macros/SymbolTable/ST_MatchSymbol.bin diff --git a/macros/SymbolTable/ST_Save.bin b/macros/SymbolTable/ST_Save.bin Binary files differnew file mode 100644 index 0000000..4aa50a2 --- /dev/null +++ b/macros/SymbolTable/ST_Save.bin diff --git a/macros/SymbolTable/ST_Set.bin b/macros/SymbolTable/ST_Set.bin Binary files differnew file mode 100644 index 0000000..cbd2627 --- /dev/null +++ b/macros/SymbolTable/ST_Set.bin diff --git a/macros/SymbolTable/lib b/macros/SymbolTable/lib Binary files differindex 4d1b4bb..a978ec5 100644 --- a/macros/SymbolTable/lib +++ b/macros/SymbolTable/lib diff --git a/macros/SymbolTable/names b/macros/SymbolTable/names index c2efc84..b5a7d65 100644 --- a/macros/SymbolTable/names +++ b/macros/SymbolTable/names @@ -6,7 +6,6 @@ ST_GetInArgInfo ST_GetSymbolInfo ST_InsForCntVars ST_InsOutArg -ST_InsOutArg_Dup ST_Load ST_MatchSymbol ST_Save |