diff options
Diffstat (limited to 'macros/SymbolTable')
-rw-r--r-- | macros/SymbolTable/ST_AnalyzeScope.sci | 2 | ||||
-rw-r--r-- | macros/SymbolTable/ST_GetInArgInfo.sci | 100 | ||||
-rw-r--r-- | macros/SymbolTable/ST_InsOutArg.sci | 9 | ||||
-rw-r--r-- | macros/SymbolTable/ST_InsOutArg_Dup.sci | 195 | ||||
-rw-r--r-- | macros/SymbolTable/ST_MatchSymbol.sci | 1 | ||||
-rw-r--r-- | macros/SymbolTable/names | 13 |
6 files changed, 295 insertions, 25 deletions
diff --git a/macros/SymbolTable/ST_AnalyzeScope.sci b/macros/SymbolTable/ST_AnalyzeScope.sci index c89c359a..8389c09a 100644 --- a/macros/SymbolTable/ST_AnalyzeScope.sci +++ b/macros/SymbolTable/ST_AnalyzeScope.sci @@ -47,6 +47,7 @@ TempVarsFileName = FileInfo.Funct(nxtscifunnumber).TempVarFileName; // ------------------------------------------------------------------
// #RNU_RES_E
for cntout = 1:NOutArg
+
// #RNU_RES_B
PrintStringInfo(' Symbol ""'+OutArg(cntout).Name+'""',ReportFileName,'file','y');
// #RNU_RES_E
@@ -83,7 +84,6 @@ 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_GetInArgInfo.sci b/macros/SymbolTable/ST_GetInArgInfo.sci index 1fe060a5..69885dda 100644 --- a/macros/SymbolTable/ST_GetInArgInfo.sci +++ b/macros/SymbolTable/ST_GetInArgInfo.sci @@ -1,4 +1,4 @@ -function [UpdatedInArg,SharedInfo] = ST_GetInArgInfo(InArg,NInArg,FileInfo,SharedInfo)
+function [UpdatedInArg,SharedInfo] = ST_GetInArgInfo(InArg,NInArg,FileInfo,SharedInfo,ASTFunName)
// function UpdatedInArg = ST_GetInArgInfo(InArg,NInArg,FileInfo,SharedInfo)
// -----------------------------------------------------------------
// #RNU_RES_B
@@ -26,7 +26,7 @@ function [UpdatedInArg,SharedInfo] = ST_GetInArgInfo(InArg,NInArg,FileInfo,Share // ------------------------------
// --- Check input arguments. ---
// ------------------------------
-SCI2CNInArgCheck(argn(2),4,4);
+SCI2CNInArgCheck(argn(2),5,5);
// -----------------------
// --- Initialization. ---
@@ -47,15 +47,15 @@ UpdatedInArg = InArg; for cntinarg = 1:NInArg
tmpname = InArg(cntinarg).Name;
- tmpscope = InArg(cntinarg).Scope;
+ 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,6 +101,17 @@ 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
@@ -115,7 +126,7 @@ for cntinarg = 1:NInArg UpdatedInArg(cntinarg).Size(2) = string(length(tmpname)+1); //+1 = (\0)
UpdatedInArg(cntinarg).Value = '""'+tmpname+'""';
UpdatedInArg(cntinarg).FindLike = 0;
- UpdatedInArg(cntinarg).Dimension = 2; //NUT: in future releases you can set this field to 1.
+ UpdatedInArg(cntinarg).Dimension = 2; //Keep it zero to avoid extra argument 'funcnameSize'.
UpdatedInArg(cntinarg).Scope = 'Temp';
// #RNU_RES_B
@@ -129,22 +140,69 @@ for cntinarg = 1:NInArg PrintStringInfo('Input Argument '+string(cntinarg)+' is a symbol: '+tmpname+'.',FileInfo.Funct(nxtscifunnumber).ReportFileName,'file');
// #RNU_RES_E
[TBFlagfound,TBType,TBSize,TBValue,TBFindLike,TBDimension,TBScope] = ST_GetSymbolInfo(tmpname,FileInfo,SharedInfo);
+
if (TBFlagfound == 0)
- PrintStringInfo(' ',ReportFileName,'both','y');
- PrintStringInfo('SCI2CERROR: Unknown symbol ""'+tmpname+'"".',ReportFileName,'both','y');
- PrintStringInfo('SCI2CERROR: Be sure to initialize every symbol you are using.',ReportFileName,'both','y');
- PrintStringInfo('SCI2CERROR: Before running the SCI2C translator, remember to run the code you are trying',ReportFileName,'both','y');
- PrintStringInfo('SCI2CERROR: to translate in order to check syntax errors.',ReportFileName,'both','y');
- PrintStringInfo(' ',ReportFileName,'both','y');
- error(9999, 'SCI2CERROR: Unknown symbol ""'+tmpname+'"".');
+ if(ASTFunName == 'ode')
+ if((NInArg == 4 & cntinarg == 4) | (NInArg == 6 & cntinarg == 6))
+ //incase of 4 arguments, fourth argument is function name
+ UpdatedInArg(cntinarg).Name = tmpname; // Change the name.
+ UpdatedInArg(cntinarg).Type = 'fn'; //it is a function name
+ UpdatedInArg(cntinarg).Size(1) = '1';
+ UpdatedInArg(cntinarg).Size(2) = '1'; //+1 = (\0)
+ UpdatedInArg(cntinarg).Value = '&'+tmpname;
+ UpdatedInArg(cntinarg).FindLike = 0;
+ UpdatedInArg(cntinarg).Dimension = 0; //NUT: in future releases you can set this field to 1.
+ UpdatedInArg(cntinarg).Scope = 'Temp';
+ ST_InsOutArg(UpdatedInArg(cntinarg),1,FileInfo,SharedInfo,'all');
+ elseif (NInArg == 5 & cntinarg == 5) then
+ //incase of 5 arguments, fifth argument is function name
+ UpdatedInArg(cntinarg).Name = tmpname; // Change the name.
+ UpdatedInArg(cntinarg).Type = 'fn'; //it is a function name
+ UpdatedInArg(cntinarg).Size(1) = '1';
+ UpdatedInArg(cntinarg).Size(2) = '1'; //+1 = (\0)
+ UpdatedInArg(cntinarg).Value = '&'+tmpname;
+ UpdatedInArg(cntinarg).FindLike = 0;
+ UpdatedInArg(cntinarg).Dimension = 0; //NUT: in future releases you can set this field to 1.
+ UpdatedInArg(cntinarg).Scope = 'Temp';
+ ST_InsOutArg(UpdatedInArg(cntinarg),1,FileInfo,SharedInfo,'all');
+ end
+ elseif (ASTFunName == 'RPI_ThreadCreate')
+ UpdatedInArg(cntinarg).Name = tmpname; // Change the name.
+ UpdatedInArg(cntinarg).Type = 'fn'; //it is a function name
+ UpdatedInArg(cntinarg).Size(1) = '1';
+ UpdatedInArg(cntinarg).Size(2) = '1'; //+1 = (\0)
+ UpdatedInArg(cntinarg).Value = '&'+tmpname;
+ UpdatedInArg(cntinarg).FindLike = 0;
+ UpdatedInArg(cntinarg).Dimension = 0; //NUT: in future releases you can set this field to 1.
+ UpdatedInArg(cntinarg).Scope = 'Temp';
+ ST_InsOutArg(UpdatedInArg(cntinarg),1,FileInfo,SharedInfo,'all');
+ elseif (ASTFunName == 'RPI_PinISR')
+ UpdatedInArg(cntinarg).Name = tmpname; // Change the name.
+ UpdatedInArg(cntinarg).Type = 'fn'; //it is a function name
+ UpdatedInArg(cntinarg).Size(1) = '1';
+ UpdatedInArg(cntinarg).Size(2) = '1'; //+1 = (\0)
+ UpdatedInArg(cntinarg).Value = '&'+tmpname;
+ UpdatedInArg(cntinarg).FindLike = 0;
+ UpdatedInArg(cntinarg).Dimension = 0; //NUT: in future releases you can set this field to 1.
+ UpdatedInArg(cntinarg).Scope = 'Temp';
+ ST_InsOutArg(UpdatedInArg(cntinarg),1,FileInfo,SharedInfo,'all');
+ else
+ PrintStringInfo(' ',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: Unknown symbol ""'+tmpname+'"".',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: Be sure to initialize every symbol you are using.',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: Before running the SCI2C translator, remember to run the code you are trying',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: to translate in order to check syntax errors.',ReportFileName,'both','y');
+ PrintStringInfo(' ',ReportFileName,'both','y');
+ error(9999, 'SCI2CERROR: Unknown symbol ""'+tmpname+'"".');
+ end
+ else
+ UpdatedInArg(cntinarg).Type = TBType;
+ UpdatedInArg(cntinarg).Size = TBSize;
+ UpdatedInArg(cntinarg).Value = TBValue;
+ UpdatedInArg(cntinarg).FindLike = TBFindLike;
+ UpdatedInArg(cntinarg).Dimension = TBDimension;
+ UpdatedInArg(cntinarg).Scope = TBScope;
end
- UpdatedInArg(cntinarg).Type = TBType;
- UpdatedInArg(cntinarg).Size = TBSize;
- UpdatedInArg(cntinarg).Value = TBValue;
- UpdatedInArg(cntinarg).FindLike = TBFindLike;
- UpdatedInArg(cntinarg).Dimension = TBDimension;
- UpdatedInArg(cntinarg).Scope = TBScope;
-
else
error(9999, 'Unknown scope identifier ""'+tmpscope+'"" for variable ""'+tmpname+'"".');
end
@@ -152,7 +210,7 @@ for cntinarg = 1:NInArg PrintStringInfo(' Type: '+UpdatedInArg(cntinarg).Type,FileInfo.Funct(nxtscifunnumber).ReportFileName,'file');
PrintStringInfo(' Size(1): '+string(UpdatedInArg(cntinarg).Size(1)),FileInfo.Funct(nxtscifunnumber).ReportFileName,'file');
PrintStringInfo(' Size(2): '+string(UpdatedInArg(cntinarg).Size(2)),FileInfo.Funct(nxtscifunnumber).ReportFileName,'file');
- PrintStringInfo(' Value: '+string(UpdatedInArg(cntinarg).Value),FileInfo.Funct(nxtscifunnumber).ReportFileName,'file');
+ //PrintStringInfo(' Value: '+string(UpdatedInArg(cntinarg).Value),FileInfo.Funct(nxtscifunnumber).ReportFileName,'file');
PrintStringInfo(' FindLike: '+string(UpdatedInArg(cntinarg).FindLike),FileInfo.Funct(nxtscifunnumber).ReportFileName,'file');
PrintStringInfo(' Dimension: '+string(UpdatedInArg(cntinarg).Dimension),FileInfo.Funct(nxtscifunnumber).ReportFileName,'file');
PrintStringInfo(' Scope: '+UpdatedInArg(cntinarg).Scope,FileInfo.Funct(nxtscifunnumber).ReportFileName,'file');
diff --git a/macros/SymbolTable/ST_InsOutArg.sci b/macros/SymbolTable/ST_InsOutArg.sci index 7d99ddf8..fd6b426c 100644 --- a/macros/SymbolTable/ST_InsOutArg.sci +++ b/macros/SymbolTable/ST_InsOutArg.sci @@ -47,8 +47,6 @@ 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');
@@ -125,6 +123,13 @@ for counteroutput = 1:NOutArg 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
diff --git a/macros/SymbolTable/ST_InsOutArg_Dup.sci b/macros/SymbolTable/ST_InsOutArg_Dup.sci new file mode 100644 index 00000000..67554bd9 --- /dev/null +++ b/macros/SymbolTable/ST_InsOutArg_Dup.sci @@ -0,0 +1,195 @@ +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,... + InArg,... + 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_MatchSymbol.sci b/macros/SymbolTable/ST_MatchSymbol.sci index 20f0bbe8..504379c2 100644 --- a/macros/SymbolTable/ST_MatchSymbol.sci +++ b/macros/SymbolTable/ST_MatchSymbol.sci @@ -34,7 +34,6 @@ TBFlagEqualSymbols = 0; // --- Find symbol (If exists). ---
[TBFlagfound,tmpType,tmpSize,tmpValue,tmpFindLike,tmpDimension] = ...
ST_Get(TBName,SymbolTableFileName);
-
if (TBFlagfound == 1)
if (tmpType == 'GBLToBeDefined')
TBFlagfound = 2;
diff --git a/macros/SymbolTable/names b/macros/SymbolTable/names new file mode 100644 index 00000000..c2efc843 --- /dev/null +++ b/macros/SymbolTable/names @@ -0,0 +1,13 @@ +ST_AnalyzeScope +ST_Del +ST_FindPos +ST_Get +ST_GetInArgInfo +ST_GetSymbolInfo +ST_InsForCntVars +ST_InsOutArg +ST_InsOutArg_Dup +ST_Load +ST_MatchSymbol +ST_Save +ST_Set |