summaryrefslogtreecommitdiff
path: root/macros/SymbolTable
diff options
context:
space:
mode:
authorSandeep Gupta2017-07-05 12:41:25 +0530
committerSandeep Gupta2017-07-05 12:41:25 +0530
commit06337f0dc8114c70fd0c7767083971a0d091750a (patch)
tree446481550ba88e6e0f7df2db7fdc66d2016ee2f1 /macros/SymbolTable
parentc2e305c3b82ed944d57402dd515b3d5839a31980 (diff)
downloadScilab2C_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')
-rw-r--r--macros/SymbolTable/ST_AnalyzeScope.binbin0 -> 16792 bytes
-rw-r--r--macros/SymbolTable/ST_AnalyzeScope.sci1
-rw-r--r--macros/SymbolTable/ST_Del.binbin0 -> 4552 bytes
-rw-r--r--macros/SymbolTable/ST_FindPos.binbin0 -> 5104 bytes
-rw-r--r--macros/SymbolTable/ST_Get.binbin0 -> 8108 bytes
-rw-r--r--macros/SymbolTable/ST_GetInArgInfo.binbin0 -> 37384 bytes
-rw-r--r--macros/SymbolTable/ST_GetInArgInfo.sci15
-rw-r--r--macros/SymbolTable/ST_GetSymbolInfo.binbin0 -> 13320 bytes
-rw-r--r--macros/SymbolTable/ST_InsForCntVars.binbin0 -> 25508 bytes
-rw-r--r--macros/SymbolTable/ST_InsOutArg.binbin0 -> 33516 bytes
-rw-r--r--macros/SymbolTable/ST_InsOutArg.sci2
-rw-r--r--macros/SymbolTable/ST_InsOutArg_Dup.sci195
-rw-r--r--macros/SymbolTable/ST_Load.binbin0 -> 4288 bytes
-rw-r--r--macros/SymbolTable/ST_MatchSymbol.binbin0 -> 9112 bytes
-rw-r--r--macros/SymbolTable/ST_Save.binbin0 -> 5440 bytes
-rw-r--r--macros/SymbolTable/ST_Set.binbin0 -> 7048 bytes
-rw-r--r--macros/SymbolTable/libbin728 -> 720 bytes
-rw-r--r--macros/SymbolTable/names1
18 files changed, 5 insertions, 209 deletions
diff --git a/macros/SymbolTable/ST_AnalyzeScope.bin b/macros/SymbolTable/ST_AnalyzeScope.bin
new file mode 100644
index 0000000..7e727a0
--- /dev/null
+++ b/macros/SymbolTable/ST_AnalyzeScope.bin
Binary files differ
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
new file mode 100644
index 0000000..c26e2e5
--- /dev/null
+++ b/macros/SymbolTable/ST_Del.bin
Binary files differ
diff --git a/macros/SymbolTable/ST_FindPos.bin b/macros/SymbolTable/ST_FindPos.bin
new file mode 100644
index 0000000..c7003f3
--- /dev/null
+++ b/macros/SymbolTable/ST_FindPos.bin
Binary files differ
diff --git a/macros/SymbolTable/ST_Get.bin b/macros/SymbolTable/ST_Get.bin
new file mode 100644
index 0000000..512e72b
--- /dev/null
+++ b/macros/SymbolTable/ST_Get.bin
Binary files differ
diff --git a/macros/SymbolTable/ST_GetInArgInfo.bin b/macros/SymbolTable/ST_GetInArgInfo.bin
new file mode 100644
index 0000000..6eb16e3
--- /dev/null
+++ b/macros/SymbolTable/ST_GetInArgInfo.bin
Binary files differ
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
new file mode 100644
index 0000000..b8a7cf7
--- /dev/null
+++ b/macros/SymbolTable/ST_GetSymbolInfo.bin
Binary files differ
diff --git a/macros/SymbolTable/ST_InsForCntVars.bin b/macros/SymbolTable/ST_InsForCntVars.bin
new file mode 100644
index 0000000..12882fc
--- /dev/null
+++ b/macros/SymbolTable/ST_InsForCntVars.bin
Binary files differ
diff --git a/macros/SymbolTable/ST_InsOutArg.bin b/macros/SymbolTable/ST_InsOutArg.bin
new file mode 100644
index 0000000..ec9970c
--- /dev/null
+++ b/macros/SymbolTable/ST_InsOutArg.bin
Binary files differ
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
new file mode 100644
index 0000000..f158c2b
--- /dev/null
+++ b/macros/SymbolTable/ST_Load.bin
Binary files differ
diff --git a/macros/SymbolTable/ST_MatchSymbol.bin b/macros/SymbolTable/ST_MatchSymbol.bin
new file mode 100644
index 0000000..278560d
--- /dev/null
+++ b/macros/SymbolTable/ST_MatchSymbol.bin
Binary files differ
diff --git a/macros/SymbolTable/ST_Save.bin b/macros/SymbolTable/ST_Save.bin
new file mode 100644
index 0000000..4aa50a2
--- /dev/null
+++ b/macros/SymbolTable/ST_Save.bin
Binary files differ
diff --git a/macros/SymbolTable/ST_Set.bin b/macros/SymbolTable/ST_Set.bin
new file mode 100644
index 0000000..cbd2627
--- /dev/null
+++ b/macros/SymbolTable/ST_Set.bin
Binary files differ
diff --git a/macros/SymbolTable/lib b/macros/SymbolTable/lib
index 4d1b4bb..a978ec5 100644
--- a/macros/SymbolTable/lib
+++ b/macros/SymbolTable/lib
Binary files differ
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