0 Members and 2 Guests are viewing this topic.
/ export_chooser.h file #ifndef EXPORT_CHOOSER_H#define EXPORT_CHOOSER_H#include <string>#include "defines.h"using namespace std;enum PSE_LANG { PSE_CPP, PSE_HP_Basic, PSE_TI_Basic };string translate_function(const string &name, const string &args);void translate_main(t_programa &prog, t_algoritmo &alg);extern PSE_LANG language;#endif
#include "export_chooser.h"#include "export_cpp.h"#include "export_HP_Basic.h"#include "export_TI_Basic.h"// PSE_LANG language=PSE_CPP; // C++ language (default )// PSE_LANG language=HP_Basic; // HP_Basic languagePSE_LANG language=TI_Basic; // TI_Basic languagestring translate_function(const string &name, const string &args) { switch (PSE_LANG) { PSE_CPP: return cpp_function(name,args); break; PSE_HP_Basic: return HP_Basic_function(name,args); break; PSE_TI_Basic: return TI_Basic_function(name,args); break; }}void translate_main(t_programa & prog, t_algoritmo & alg) { switch (PSE_LANG) { PSE_CPP: cpp_main(prog,alg); return; break; PSE_HP_Basic: HP_Basic_main(prog,alg); return; break;PSE_HP_Basic: TI_Basic_main(prog,alg); return; break; }}
#ifndef EXPORT_HP_Basic_H#define EXPORT_HP_Basic_H#define EXPORT_TI_Basic_H#include "defines.h"/*** @brief traduce la llamada a una función predefinida a HP_Basic** @param name nombre de la función en pseudocódigo* @param args string con la lista de argumentos (incluye los paréntesis)**/string TI_Basic_function(string name, string args);/*** @brief traduce el algoritmo a TI_Basic** @param prog argumento de salida, donde colocar las instrucciones traducidas* @param alg argumento de entrada, con el algoritmo ya parseado**/void TI_Basic_main(t_programa &prog, t_algoritmo &alg);#endif
bool PalabraReservada(const string &str) { // Comprobar que no sea palabra reservada if (word_operators && (str=="Y" || str=="O" || str=="NO" || str=="MOD")) return true; if (str=="LEER" || str=="ESCRIBIR" || str=="MIENTRAS" || str=="HACER" || str=="SEGUN" || str=="VERDADERO" || str=="FALSO" || str=="PARA") return true; if (str=="REPETIR" || str=="SI" || str=="SINO" || str=="ENTONCES" || str=="DIMENSION" || str=="PROCESO") return true; if (str=="FINSI" || str=="FINPARA" || str=="FINSEGUN" || str=="FINPROCESO" || str=="FINMIENTRAS" || str=="HASTA" || str=="DEFINIR" || str=="COMO") return true; if (str=="FIN" || str=="IMPRIMIR" || str=="BORRAR" || str=="LIMPIAR" || str=="PANTALLA" || str=="BORRARPANTALLA" || str=="LIMPIARPANTALLA") return true; if (str=="SIN" || str=="BAJAR" || str=="SINBAJAR" || str=="SALTAR" || str=="SINSALTAR") return true; return false;}...
bool KeyWord(const string &str) { // Check that there is not keyword if (word_operators && (str=="AND" || str=="OR" || str=="NOT" || str=="MODULE")) return true; if (str=="READ" || str=="WRITE" || str=="WHILE" || str=="DO" || str=="SWITCH" || str=="TRUE" || str=="FALSE" || str=="FOR") return true; if (str=="REPEAT" || str=="IF" || str=="ELSE" || str=="THEN" || str=="DIMENSION" || str=="PROCESS") return true; if (str=="IFEND" || str=="FOREND" || str=="SWITCHEND" || str=="PROCESSEND" || str=="WHILEEND" || str=="TO" || str=="DEFINE" || str=="AS") return true; if (str=="END" || str=="PRINT" || str=="DELETE" || str=="CLEAR" || str=="CLEANSCREEN" || str=="SCREEN" || str=="DELSCREEN ") return true; if (str=="WITHOUT" || str=="DOWN" || str==" WITHOUT DOWN" || str=="SKIP" || str=="WITHOUTSKIP") return true; return false;}