Bonjour, alors voila j'ai un problème lorsque je lance mon programme, il débute normalement mais seulement voila, il apparait a l'écran que mon programme.exe a cesser de fonctionner et je ne vois pas d'ou sa vient dans mon code.cpp, merci d'avance pour votre aide.
#include <c_port.h>
#include <c_api.h>
#include <c_path.h>
#include <iostream>
#include <fstream>
//Gestionnaire de ressources
#include <p_api.h> /* Pour pouvoir utiliser init_resource_manager() */
#include <c_out.h> /* pour le mode verbose */
using namespace std;
ofstream file2 ("file2.txt");
void function parse_operation(T_machine* mch) {
T_op* operation=mch->get_operations();
while (operation != NULL) {
T_op *def_op = operation->get_definition();
T_ident *ref_op = def_op->get_ref_operation();
file2 << " " << operation->get_op_name()->get_value() << '-' << '>' << " " << ref_op->get_name()->get_value() << ';' << endl;
// Definition de l'operation
while (ref_op) {
file2 << " Ref_op = " << ref_op->get_name()->get_value() << endl;
ref_op = (T_ident *) ref_op->get_next();
}
operation = (T_op*)operation->get_next();
}
}
int function main(int argc, char* argv[]) {
const string filename=argv[1];
//Initialisation du systeme des ressources
init_resource_manager() ;
// Initialisation du compilateur
init_compiler() ;
set_verbose_mode() ;
file2 << "Reading file: " << argv[1] << endl;
T_betree *betree= compiler_syntax_analysis(filename.c_str());
// Chargement de tous les composants de la colonne de raffinement
betree=compiler_semantic_analysis(betree);
T_machine *mch = betree->get_root();
T_machine *mcha = mch;
mch = mch->get_ref_specification(); // Specification de la colonne de raffinement
parse_operation(mcha);
do {
file2 << "Current component : " << mcha->get_machine_name()->get_name()->get_value() << endl;
mcha = mcha->get_ref_abstraction();
parse_operation(mcha);
}
while (mch != mcha);
}
En gros cela m'affiche cela dans mon fichier texte :
evt5-> evt3;
evt6-> evt3;
evt3-> evt1;
alors qu'il devrait y avoir en plus
evt3->evt2;
evt4;
evt1->evt1;