summaryrefslogtreecommitdiff
path: root/macros/ASTManagement
diff options
context:
space:
mode:
Diffstat (limited to 'macros/ASTManagement')
-rw-r--r--macros/ASTManagement/%ifthenelse_string.sci27
-rw-r--r--macros/ASTManagement/AST_HandleEOL.sci8
-rw-r--r--macros/ASTManagement/_ifthenelse_string.sci27
-rw-r--r--macros/ASTManagement/libbin1992 -> 4861 bytes
-rw-r--r--macros/ASTManagement/names2
5 files changed, 61 insertions, 3 deletions
diff --git a/macros/ASTManagement/%ifthenelse_string.sci b/macros/ASTManagement/%ifthenelse_string.sci
new file mode 100644
index 0000000..ef588c5
--- /dev/null
+++ b/macros/ASTManagement/%ifthenelse_string.sci
@@ -0,0 +1,27 @@
+function txt=%ifthenelse_string(I)
+//overloading function for "ifthenel" type tlist string function
+//this is a node of the AST
+//fields:
+// expression : "expression" type tlist (the if expression)
+// then : list of "equal" type tlist and list('EOL') (the
+// then instructions list)
+// elseifs : a list of tlists
+// else : list of "equal" type tlist and list('EOL') (the
+// else instructions list)
+ txt=['If '
+ ' Expression:'
+ ' '+string(I.expression)
+ ' If Statements'
+ ' '+objectlist2string(I.then)]
+ for e=I.elseifs
+ txt=[txt;
+ ' Else If Expression'
+ ' '+string(e.expression)
+ ' Else If Statements'
+ ' '+objectlist2string(e.then)]
+ end
+ txt=[txt;
+ ' Else Statements'
+ ' '+objectlist2string(I.else)
+ 'EndIf']
+endfunction
diff --git a/macros/ASTManagement/AST_HandleEOL.sci b/macros/ASTManagement/AST_HandleEOL.sci
index 0f55457..4b28728 100644
--- a/macros/ASTManagement/AST_HandleEOL.sci
+++ b/macros/ASTManagement/AST_HandleEOL.sci
@@ -46,15 +46,17 @@ sciline = mgetl(SciFileFid,1);
PrintStringInfo(' ',ReportFileName,'file','y','n');
PrintStringInfo('##################'+'################'+'##################'+'##################'+'##################',ReportFileName,'file','y','n');
PrintStringInfo('##################'+'################'+'##################'+'##################'+'##################',ReportFileName,'file','y','n');
-PrintStringInfo('### Scilab code: '+sciline+' ###',ReportFileName,'file','y','n');
+//PrintStringInfo('### Scilab code: '+sciline+' ###',ReportFileName,'file','y','n');
PrintStringInfo('##################'+'################'+'##################'+'##################'+'##################',ReportFileName,'file','y','n');
PrintStringInfo('##################'+'################'+'##################'+'##################'+'##################',ReportFileName,'file','y','n');
// #RNU_RES_E
PrintStringInfo(' ',CPass1FileName,'file','y');
// RNU BRUNO modeprintstringinfo MUST BE AN EXTERNAL PARAMETER!
-modeprintstringinfo = 'both';
+//modeprintstringinfo = 'both';
if (SharedInfo.CopySciCodeIntoCCode == 1)
- modeprintstringinfo = 'both';
+ modeprintstringinfo = 'file';
+else
+ modeprintstringinfo = 'stdout';
end
PrintStringInfo(C_IndentBlanks(IndentLevel)+'/*SCI2C: #############'+'############'+'##############'+'###############'+'############',CPass1FileName,modeprintstringinfo,'y','n');
PrintStringInfo(C_IndentBlanks(IndentLevel)+' SCI2C: '+sciline,CPass1FileName,modeprintstringinfo,'y','n');
diff --git a/macros/ASTManagement/_ifthenelse_string.sci b/macros/ASTManagement/_ifthenelse_string.sci
new file mode 100644
index 0000000..ef588c5
--- /dev/null
+++ b/macros/ASTManagement/_ifthenelse_string.sci
@@ -0,0 +1,27 @@
+function txt=%ifthenelse_string(I)
+//overloading function for "ifthenel" type tlist string function
+//this is a node of the AST
+//fields:
+// expression : "expression" type tlist (the if expression)
+// then : list of "equal" type tlist and list('EOL') (the
+// then instructions list)
+// elseifs : a list of tlists
+// else : list of "equal" type tlist and list('EOL') (the
+// else instructions list)
+ txt=['If '
+ ' Expression:'
+ ' '+string(I.expression)
+ ' If Statements'
+ ' '+objectlist2string(I.then)]
+ for e=I.elseifs
+ txt=[txt;
+ ' Else If Expression'
+ ' '+string(e.expression)
+ ' Else If Statements'
+ ' '+objectlist2string(e.then)]
+ end
+ txt=[txt;
+ ' Else Statements'
+ ' '+objectlist2string(I.else)
+ 'EndIf']
+endfunction
diff --git a/macros/ASTManagement/lib b/macros/ASTManagement/lib
index e6a9692..67ea09b 100644
--- a/macros/ASTManagement/lib
+++ b/macros/ASTManagement/lib
Binary files differ
diff --git a/macros/ASTManagement/names b/macros/ASTManagement/names
index ba4143a..a1aafbc 100644
--- a/macros/ASTManagement/names
+++ b/macros/ASTManagement/names
@@ -4,6 +4,7 @@
%for_string
%funcall_string
%ifthenel_string
+%ifthenelse_string
%operatio_string
%operation_string
%program_p
@@ -48,6 +49,7 @@ _equal_string
_for_string
_funcall_string
_ifthenel_string
+_ifthenelse_string
_operatio_string
_operation_string
_program_p