/* Chrysalide - Outil d'analyse de fichiers binaires * output-int.h - définitions internes pour les sorties en langage de programmation * * Copyright (C) 2010-2013 Cyrille Bagard * * This file is part of Chrysalide. * * OpenIDA is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * OpenIDA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Foobar. If not, see . */ #ifndef _DECOMP_OUTPUT_INT_H #define _DECOMP_OUTPUT_INT_H #include "output.h" /* Xxx. */ typedef GBufferLine * (* rlgbuf_fc) (GLangOutput *, GCodeBuffer *); /* Ajoute un commentaire à un tampon donné. */ typedef GBufferLine * (* write_comments_fc) (GLangOutput *, GCodeBuffer *, const char *, size_t); /* Imprime dans un tampon donné une méthode de comparaison. */ typedef void (* write_comp_sign_fc) (GLangOutput *, GBufferLine *, CompSignType); /* Imprime dans un tampon donné un opérateur logique. */ typedef void (* write_cond_op_fc) (GLangOutput *, GBufferLine *, CondOperatorType); /* Débute la documentation d'une routine. */ typedef GBufferLine * (* start_rtn_info_fc) (const GLangOutput *, GCodeBuffer *); /* Xxx. */ typedef GBufferLine * (* rlgbuftp_fc) (GLangOutput *, GCodeBuffer *, const void /*GDataType*/ *); /* Xxx. */ typedef void (* lgbuf_fc) (GLangOutput *, GCodeBuffer *); /* Xxx. */ typedef void (* lgbufln_fc) (GLangOutput *, GCodeBuffer *, GBufferLine *); /* Xxx. */ typedef GBufferLine * (* rlgbufln_fc) (GLangOutput *, GCodeBuffer *, GBufferLine *); /* Xxx. */ typedef GBufferLine * (* rlgbuflnsz_fc) (GLangOutput *, GCodeBuffer *, GBufferLine *, size_t); /* Xxx. */ typedef GBufferLine * (* lo_buf_ln_bool_fc) (GLangOutput *, GCodeBuffer *, GBufferLine *, bool); /* Sortie selon un langage de programmation (instance) */ struct _GLangOutput { GObject parent; /* A laisser en premier */ rlgbuf_fc start_comments; /* Plusieurs commentaires (#1) */ write_comments_fc cont_comments; /* Plusieurs commentaires (#2) */ rlgbuf_fc end_comments; /* Plusieurs commentaires (#3) */ write_comments_fc write_comments; /* Commentaires sur une ligne */ write_comp_sign_fc comp_sign; /* Méthde de comparaison */ write_cond_op_fc cond_op; /* Opérateur logique */ rlgbuftp_fc start_class; /* Début de définition */ lgbuf_fc end_class; /* Fin de définition de classe */ start_rtn_info_fc start_info; /* Début de documentation */ rlgbuftp_fc start_routine_proto; /* Début de prototype */ lgbufln_fc end_routine_proto; /* Fin de prototype */ lgbufln_fc start_routine_body; /* Début de définition */ lgbuf_fc end_routine_body; /* Fin de définition de corps */ rlgbuflnsz_fc start_code_block; /* Début de définition */ rlgbuflnsz_fc end_code_block; /* Fin de définition de corps */ lo_buf_ln_bool_fc encaps_cond; /* Emballe une condition */ }; /* Sortie selon un langage de programmation (classe) */ struct _GLangOutputClass { GObjectClass parent; /* A laisser en premier */ }; #endif /* _DECOMP_OUTPUT_INT_H */