summaryrefslogtreecommitdiff
path: root/macros/ASTManagement
diff options
context:
space:
mode:
Diffstat (limited to 'macros/ASTManagement')
-rw-r--r--macros/ASTManagement/AST2Ccode.sci18
-rw-r--r--macros/ASTManagement/AST_HandleEndGenFun.sci14
2 files changed, 28 insertions, 4 deletions
diff --git a/macros/ASTManagement/AST2Ccode.sci b/macros/ASTManagement/AST2Ccode.sci
index 516291a..20aa999 100644
--- a/macros/ASTManagement/AST2Ccode.sci
+++ b/macros/ASTManagement/AST2Ccode.sci
@@ -43,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. ---
@@ -299,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/macros/ASTManagement/AST_HandleEndGenFun.sci b/macros/ASTManagement/AST_HandleEndGenFun.sci
index 327dc29..79ec976 100644
--- a/macros/ASTManagement/AST_HandleEndGenFun.sci
+++ b/macros/ASTManagement/AST_HandleEndGenFun.sci
@@ -75,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('&&');
@@ -128,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
@@ -143,8 +149,8 @@ NOutArg_mod = NOutArg
if ASTFunName == '%sn'
ASTFunName='modsn';
- end
-
+ end
+
if (ASTFunName == 'OpEqual')
FunTypeAnnot = '';
FunSizeAnnot = '';