diff options
Diffstat (limited to 'macros/ASTManagement')
-rw-r--r-- | macros/ASTManagement/%ifthenelse_string.sci | 27 | ||||
-rw-r--r-- | macros/ASTManagement/AST_HandleEOL.sci | 8 | ||||
-rw-r--r-- | macros/ASTManagement/_ifthenelse_string.sci | 27 | ||||
-rw-r--r-- | macros/ASTManagement/lib | bin | 1992 -> 4861 bytes | |||
-rw-r--r-- | macros/ASTManagement/names | 2 |
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 Binary files differindex e6a9692..67ea09b 100644 --- a/macros/ASTManagement/lib +++ b/macros/ASTManagement/lib 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 |