summaryrefslogtreecommitdiff
path: root/src/decomp/output.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/decomp/output.c')
-rw-r--r--src/decomp/output.c483
1 files changed, 0 insertions, 483 deletions
diff --git a/src/decomp/output.c b/src/decomp/output.c
deleted file mode 100644
index 52bf9f7..0000000
--- a/src/decomp/output.c
+++ /dev/null
@@ -1,483 +0,0 @@
-
-/* Chrysalide - Outil d'analyse de fichiers binaires
- * output.c - sorties en langage de programmation
- *
- * Copyright (C) 2010-2013 Cyrille Bagard
- *
- * This file is part of Chrysalide.
- *
- * Chrysalide 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.
- *
- * Chrysalide 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 <http://www.gnu.org/licenses/>.
- */
-
-
-#include "output.h"
-
-
-#include "output-int.h"
-#include "../analysis/type.h" /* TODO : remme */
-
-
-
-/* Indique le type défini pour une sortie de langage de programmation. */
-G_DEFINE_TYPE(GLangOutput, g_lang_output, G_TYPE_OBJECT);
-
-
-/******************************************************************************
-* *
-* Paramètres : klass = classe à initialiser. *
-* *
-* Description : Initialise la classe des sorties en langage de programmation.*
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-static void g_lang_output_class_init(GLangOutputClass *klass)
-{
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : output = instance à initialiser. *
-* *
-* Description : Initialise une instance de sortie en langage de prog. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-static void g_lang_output_init(GLangOutput *output)
-{
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : output = encadrant de l'impression en langage de prog. *
-* buffer = tampon de sortie à disposition. *
-* *
-* Description : Marque le début d'une série de commentaires. *
-* *
-* Retour : Nouvelle ligne constituée. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GBufferLine *g_lang_output_start_comments(GLangOutput *output, GCodeBuffer *buffer)
-{
- GBufferLine *result; /* Adresse nouvelle à remonter */
-
- if (output->start_comments != NULL)
- result = output->start_comments(output, buffer);
-
- else result = NULL;
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : output = encadrant de l'impression en langage de prog. *
-* buffer = tampon de sortie à disposition. *
-* text = texte à insérer dans l'existant. *
-* length = taille du texte à traiter. *
-* *
-* Description : Poursuit l'ajout d'une ligne de commentaires. *
-* *
-* Retour : Ligne nouvellement créée. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GBufferLine *g_lang_output_continue_comments(GLangOutput *output, GCodeBuffer *buffer, const char *text, size_t length)
-{
- GBufferLine *result; /* Adresse nouvelle à remonter */
-
- if (output->cont_comments != NULL)
- result = output->cont_comments(output, buffer, text, length);
-
- else result = NULL;
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : output = encadrant de l'impression en langage de prog. *
-* buffer = tampon de sortie à disposition. *
-* *
-* Description : Marque la fin d'une série de commentaires. *
-* *
-* Retour : Nouvelle ligne constituée. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GBufferLine *g_lang_output_end_comments(GLangOutput *output, GCodeBuffer *buffer)
-{
- GBufferLine *result; /* Adresse nouvelle à remonter */
-
- if (output->end_comments != NULL)
- result = output->end_comments(output, buffer);
-
- else result = NULL;
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : output = encadrant de l'impression en langage de prog. *
-* buffer = tampon de sortie à disposition. *
-* text = texte à insérer dans l'existant. *
-* length = taille du texte à traiter. *
-* *
-* Description : Ajoute un commentaire à un tampon donné. *
-* *
-* Retour : Ligne nouvellement créée. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GBufferLine *g_lang_output_write_comments(GLangOutput *output, GCodeBuffer *buffer, const char *text, size_t length)
-{
- GBufferLine *result; /* Adresse nouvelle à remonter */
-
- if (output->write_comments != NULL)
- result = output->write_comments(output, buffer, text, length);
-
- else result = NULL;
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : output = encadrant de l'impression en langage de prog. *
-* line = tampon de sortie à disposition. *
-* sign = méthode de comparaison à imprimer. *
-* *
-* Description : Imprime dans un tampon donné une méthode de comparaison. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-void g_lang_output_write_comp_sign(GLangOutput *output, GBufferLine *line, CompSignType sign)
-{
- if (output->comp_sign != NULL)
- output->comp_sign(output, line, sign);
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : output = encadrant de l'impression en langage de prog. *
-* line = tampon de sortie à disposition. *
-* op = opérateur logique à imprimer. *
-* *
-* Description : Imprime dans un tampon donné un opérateur logique. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-void g_lang_output_write_cond_operator(GLangOutput *output, GBufferLine *line, CondOperatorType op)
-{
- if (output->cond_op != NULL)
- output->cond_op(output, line, op);
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : output = encadrant de l'impression en langage de prog. *
-* buffer = tampon de sortie à disposition. *
-* type = désignation de la classe à définir. *
-* *
-* Description : Débute la définition d'une classe. *
-* *
-* Retour : Ligne nouvellement créée. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GBufferLine *g_lang_output_start_class(GLangOutput *output, GCodeBuffer *buffer, const void *type)
-{
- GBufferLine *result; /* Adresse nouvelle à remonter */
-
- if (output->start_class != NULL)
- result = output->start_class(output, buffer, (const GDataType *)type);
-
- else result = NULL;
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : output = encadrant de l'impression en langage de prog. *
-* buffer = tampon de sortie à disposition. *
-* *
-* Description : Termine la définition d'une classe. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-void g_lang_output_end_class(GLangOutput *output, GCodeBuffer *buffer)
-{
- if (output->end_class != NULL)
- output->end_class(output, buffer);
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : output = encadrant de l'impression en langage de prog. *
-* buffer = tampon de sortie à disposition. *
-* *
-* Description : Débute la documentation d'une routine. *
-* *
-* Retour : Ligne nouvellement créée. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GBufferLine *g_lang_output_start_routine_info(const GLangOutput *output, GCodeBuffer *buffer)
-{
- GBufferLine *result; /* Adresse nouvelle à remonter */
-
- if (output->start_routine_proto != NULL)
- {
- result = output->start_info(output, buffer);
- g_buffer_line_start_merge_at(result, BLC_LAST_USED);
- }
- else result = NULL;
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : output = encadrant de l'impression en langage de prog. *
-* buffer = tampon de sortie à disposition. *
-* ret = type de retour de la routine traitée. *
-* *
-* Description : Débute la définition d'une routine. *
-* *
-* Retour : Ligne nouvellement créée. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GBufferLine *g_lang_output_start_routine_prototype(GLangOutput *output, GCodeBuffer *buffer, const void *ret)
-{
- GBufferLine *result; /* Adresse nouvelle à remonter */
-
- if (output->start_routine_proto != NULL)
- result = output->start_routine_proto(output, buffer, ret);
-
- else result = NULL;
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : output = encadrant de l'impression en langage de prog. *
-* buffer = tampon de sortie à disposition. *
-* line = ligne contenant le prototype de la routine traitée. *
-* *
-* Description : Termine la définition d'une routine. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-void g_lang_output_end_routine_prototype(GLangOutput *output, GCodeBuffer *buffer, GBufferLine *line)
-{
- if (output->end_routine_proto != NULL)
- output->end_routine_proto(output, buffer, line);
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : output = encadrant de l'impression en langage de prog. *
-* buffer = tampon de sortie à disposition. *
-* line = ligne contenant le prototype de la routine traitée. *
-* *
-* Description : Commence la définition du corps d'une routine. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-void g_lang_output_start_routine_body(GLangOutput *output, GCodeBuffer *buffer, GBufferLine *line)
-{
- if (output->start_routine_body != NULL)
- output->start_routine_body(output, buffer, line);
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : output = encadrant de l'impression en langage de prog. *
-* buffer = tampon de sortie à disposition. *
-* *
-* Description : Termine la définition du corps d'une routine. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-void g_lang_output_end_routine_body(GLangOutput *output, GCodeBuffer *buffer)
-{
- if (output->end_routine_body != NULL)
- output->end_routine_body(output, buffer);
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : output = encadrant de l'impression en langage de prog. *
-* buffer = tampon de sortie à disposition. *
-* line = ligne contenant le prototype de la routine traitée. *
-* count = nombre d'éléments du bloc. *
-* *
-* Description : Commence la définition d'un bloc de code. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GBufferLine *g_lang_output_start_code_block(GLangOutput *output, GCodeBuffer *buffer, GBufferLine *line, size_t count)
-{
- GBufferLine *result; /* Nouvelle ligne à utiliser */
-
- if (output->start_code_block != NULL)
- result = output->start_code_block(output, buffer, line, count);
- else
- result = NULL;
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : output = encadrant de l'impression en langage de prog. *
-* buffer = tampon de sortie à disposition. *
-* line = ligne contenant le prototype de la routine traitée. *
-* count = nombre d'éléments du bloc. *
-* *
-* Description : Termine la définition d'un bloc de code. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GBufferLine *g_lang_output_end_code_block(GLangOutput *output, GCodeBuffer *buffer, GBufferLine *line, size_t count)
-{
- GBufferLine *result; /* Nouvelle ligne à utiliser */
-
- if (output->end_code_block != NULL)
- result = output->end_code_block(output, buffer, line, count);
- else
- result = NULL;
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : output = encadrant de l'impression en langage de prog. *
-* buffer = tampon de sortie à disposition. *
-* line = ligne contenant le prototype de la routine traitée.*
-* opening = précise si la condition débute ou se termine. *
-* *
-* Description : Emballe une expression conditionelle. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GBufferLine *g_lang_output_encapsulate_condition(GLangOutput *output, GCodeBuffer *buffer, GBufferLine *line, bool opening)
-{
- GBufferLine *result; /* Nouvelle ligne à utiliser */
-
- if (output->encaps_cond != NULL)
- result = output->encaps_cond(output, buffer, line, opening);
- else
- result = NULL;
-
- return result;
-
-}