diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2016-12-12 18:38:53 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2016-12-12 18:38:53 (GMT) |
commit | 3754a5e3edeea98ce426b65772708ae91b291c1f (patch) | |
tree | e292aa254f59e61f6f9672b826f08be6f428ffdd /src/decomp/lang | |
parent | dcc0438ff24efd5958b8d46940eb395ff2b7ed77 (diff) |
Removed most of the code related to non-working decompilation.
Diffstat (limited to 'src/decomp/lang')
-rwxr-xr-x | src/decomp/lang/Makefile.am | 13 | ||||
-rw-r--r-- | src/decomp/lang/asm.c | 298 | ||||
-rw-r--r-- | src/decomp/lang/asm.h | 55 | ||||
-rw-r--r-- | src/decomp/lang/java.c | 652 | ||||
-rw-r--r-- | src/decomp/lang/java.h | 55 |
5 files changed, 0 insertions, 1073 deletions
diff --git a/src/decomp/lang/Makefile.am b/src/decomp/lang/Makefile.am deleted file mode 100755 index 7dc4e21..0000000 --- a/src/decomp/lang/Makefile.am +++ /dev/null @@ -1,13 +0,0 @@ - -noinst_LTLIBRARIES = libdecomplang.la - -libdecomplang_la_SOURCES = \ - asm.h asm.c \ - java.h java.c - -libdecomplang_la_LDFLAGS = - - -AM_CPPFLAGS = $(LIBGTK_CFLAGS) $(LIBXML_CFLAGS) - -AM_CFLAGS = $(DEBUG_CFLAGS) $(WARNING_FLAGS) $(COMPLIANCE_FLAGS) diff --git a/src/decomp/lang/asm.c b/src/decomp/lang/asm.c deleted file mode 100644 index 630a16e..0000000 --- a/src/decomp/lang/asm.c +++ /dev/null @@ -1,298 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * asm.c - sorties en langage d'assemblage - * - * Copyright (C) 2010-2012 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 "asm.h" - - -#include "../output-int.h" -#include "../../analysis/type.h" /* TODO : remme */ - - - -/* Sortie selon le langage d'assemblage (instance) */ -struct _GAsmOutput -{ - GLangOutput parent; /* A laisser en premier */ - -}; - - -/* Sortie selon le langage d'assemblage (classe) */ -struct _GAsmOutputClass -{ - GLangOutputClass parent; /* A laisser en premier */ - -}; - - -/* Initialise la classe des sorties en langage d'assemblage. */ -static void g_asm_output_class_init(GAsmOutputClass *); - -/* Initialise une instance de sortie en langage d'assemblage. */ -static void g_asm_output_init(GAsmOutput *); - -/* Ajoute un commentaire à un tampon donné. */ -static GBufferLine *g_asm_output_write_comments(GAsmOutput *, GCodeBuffer *, const char *, size_t); - -/* Imprime dans un tampon donné une méthode de comparaison. */ -static void g_asm_output_write_comp_sign(GAsmOutput *, GBufferLine *, CompSignType); - -/* Débute la documentation d'une routine. */ -static GBufferLine *g_asm_output_start_routine_info(const GAsmOutput *, GCodeBuffer *); - -/* Débute la définition d'une routine. */ -static GBufferLine *g_asm_output_start_routine_prototype(GAsmOutput *, GCodeBuffer *, const GDataType *); - -/* Termine la définition d'une routine. */ -static void g_asm_output_end_routine_prototype(GAsmOutput *, GCodeBuffer *, GBufferLine *); - - - -/* Indique le type défini pour une sortie en langage d'assemblage. */ -G_DEFINE_TYPE(GAsmOutput, g_asm_output, G_TYPE_LANG_OUTPUT); - - -/****************************************************************************** -* * -* Paramètres : klass = classe à initialiser. * -* * -* Description : Initialise la classe des sorties en langage d'assemblage. * -* * -* Retour : - * -* * -* Remarques : - * -* * -******************************************************************************/ - -static void g_asm_output_class_init(GAsmOutputClass *klass) -{ - -} - - -/****************************************************************************** -* * -* Paramètres : output = instance à initialiser. * -* * -* Description : Initialise une instance de sortie en langage d'assemblage. * -* * -* Retour : - * -* * -* Remarques : - * -* * -******************************************************************************/ - -static void g_asm_output_init(GAsmOutput *output) -{ - GLangOutput *lang; /* Autre version de l'objet */ - - lang = G_LANG_OUTPUT(output); - - lang->cont_comments = (write_comments_fc)g_asm_output_write_comments; - lang->write_comments = (write_comments_fc)g_asm_output_write_comments; - - lang->comp_sign = (write_comp_sign_fc)g_asm_output_write_comp_sign; - - lang->start_info = (start_rtn_info_fc)g_asm_output_start_routine_info; - - lang->start_routine_proto = (rlgbuftp_fc)g_asm_output_start_routine_prototype; - lang->end_routine_proto = (lgbufln_fc)g_asm_output_end_routine_prototype; - -} - - -/****************************************************************************** -* * -* Paramètres : - * -* * -* Description : Crée une nouvelle sortie en langage d'assemblage. * -* * -* Retour : Imprimeur créé. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GLangOutput *g_asm_output_new(void) -{ - GBufferLine *result; /* Composant à retourner */ - - result = g_object_new(G_TYPE_ASM_OUTPUT, NULL); - - return G_LANG_OUTPUT(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 : - * -* * -******************************************************************************/ - -static GBufferLine *g_asm_output_write_comments(GAsmOutput *output, GCodeBuffer *buffer, const char *text, size_t length) -{ - GBufferLine *result; /* Adresse nouvelle à remonter */ - - result = g_code_buffer_append_new_line_fixme(buffer); - - g_buffer_line_append_text(result, BLC_COMMENTS, "; ", 2, RTT_COMMENT, NULL); - - if (length > 0) - g_buffer_line_append_text(result, BLC_COMMENTS, text, length, RTT_COMMENT, 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 : - * -* * -******************************************************************************/ - -static void g_asm_output_write_comp_sign(GAsmOutput *output, GBufferLine *line, CompSignType sign) -{ - g_buffer_line_append_text(line, BLC_ASSEMBLY_HEAD, " ", 1, RTT_RAW, NULL); - - switch (sign) - { - case CST_EQ: - g_buffer_line_append_text(line, BLC_ASSEMBLY_HEAD, "==", 2, RTT_SIGNS, NULL); - break; - case CST_NE: - g_buffer_line_append_text(line, BLC_ASSEMBLY_HEAD, "!=", 2, RTT_SIGNS, NULL); - break; - case CST_LT: - g_buffer_line_append_text(line, BLC_ASSEMBLY_HEAD, "<", 1, RTT_SIGNS, NULL); - break; - case CST_GE: - g_buffer_line_append_text(line, BLC_ASSEMBLY_HEAD, ">=", 2, RTT_SIGNS, NULL); - break; - case CST_GT: - g_buffer_line_append_text(line, BLC_ASSEMBLY_HEAD, ">", 1, RTT_SIGNS, NULL); - break; - case CST_LE: - g_buffer_line_append_text(line, BLC_ASSEMBLY_HEAD, "<=", 2, RTT_SIGNS, NULL); - break; - default: - g_buffer_line_append_text(line, BLC_ASSEMBLY_HEAD, "?", 1, RTT_SIGNS, NULL); - break; - } - - g_buffer_line_append_text(line, BLC_ASSEMBLY_HEAD, " ", 1, RTT_RAW, NULL); - -} - - -/****************************************************************************** -* * -* 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 : - * -* * -******************************************************************************/ - -static GBufferLine *g_asm_output_start_routine_info(const GAsmOutput *output, GCodeBuffer *buffer) -{ - GBufferLine *result; /* Adresse nouvelle à remonter */ - - result = g_code_buffer_append_new_line_fixme(buffer); - - g_buffer_line_append_text(result, BLC_ASSEMBLY_HEAD, "; ", 2, RTT_COMMENT, 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 : - * -* * -******************************************************************************/ - -static GBufferLine *g_asm_output_start_routine_prototype(GAsmOutput *output, GCodeBuffer *buffer, const GDataType *ret) -{ - GBufferLine *result; /* Adresse nouvelle à remonter */ - - result = g_code_buffer_append_new_line_fixme(buffer); - - /* TODO */ - g_buffer_line_append_text(result, BLC_ASSEMBLY_HEAD, "XXX", 3, RTT_COMMENT, 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 : - * -* * -******************************************************************************/ - -static void g_asm_output_end_routine_prototype(GAsmOutput *output, GCodeBuffer *buffer, GBufferLine *line) -{ - g_buffer_line_append_text(line, BLC_ASSEMBLY_HEAD, ";", 1, RTT_COMMENT, NULL); - -} diff --git a/src/decomp/lang/asm.h b/src/decomp/lang/asm.h deleted file mode 100644 index d050390..0000000 --- a/src/decomp/lang/asm.h +++ /dev/null @@ -1,55 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * asm.h - prototypes pour les sorties en langage d'assemblage - * - * Copyright (C) 2010 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/>. - */ - - -#ifndef _DECOMP_LANG_ASM_H -#define _DECOMP_LANG_ASM_H - - -#include "../output.h" - - - -#define G_TYPE_ASM_OUTPUT g_asm_output_get_type() -#define G_ASM_OUTPUT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), g_asm_output_get_type(), GAsmOutput)) -#define G_IS_ASM_OUTPUT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), g_asm_output_get_type())) -#define G_ASM_OUTPUT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), G_TYPE_ASM_OUTPUT, GAsmOutputClass)) -#define G_IS_ASM_OUTPUT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), G_TYPE_ASM_OUTPUT)) -#define G_ASM_OUTPUT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), G_TYPE_ASM_OUTPUT, GAsmOutputClass)) - - -/* Sortie selon le langage d'assemblage (instance) */ -typedef struct _GAsmOutput GAsmOutput; - -/* Sortie selon le langage d'assemblage (classe) */ -typedef struct _GAsmOutputClass GAsmOutputClass; - - -/* Indique le type défini pour une sortie en langage d'assemblage. */ -GType g_asm_output_get_type(void); - -/* Crée une nouvelle sortie en langage d'assemblage. */ -GLangOutput *g_asm_output_new(void); - - - -#endif /* _DECOMP_LANG_ASM_H */ diff --git a/src/decomp/lang/java.c b/src/decomp/lang/java.c deleted file mode 100644 index b12d87f..0000000 --- a/src/decomp/lang/java.c +++ /dev/null @@ -1,652 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * java.c - sorties en langage Java - * - * 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 "java.h" - - -#include "../output-int.h" -#include "../../analysis/type.h" /* TODO : remme */ - - - -/* Sortie selon le langage Java (instance) */ -struct _GJavaOutput -{ - GLangOutput parent; /* A laisser en premier */ - -}; - - -/* Sortie selon le langage Java (classe) */ -struct _GJavaOutputClass -{ - GLangOutputClass parent; /* A laisser en premier */ - -}; - - -/* Initialise la classe des sorties en langage Java. */ -static void g_java_output_class_init(GJavaOutputClass *); - -/* Initialise une instance de sortie en langage Java. */ -static void g_java_output_init(GJavaOutput *); - -/* Marque le début d'une série de commentaires. */ -static GBufferLine *g_java_output_start_comments(GJavaOutput *, GCodeBuffer *); - -/* Poursuit l'ajout d'une ligne de commentaires. */ -static GBufferLine *g_java_output_continue_comments(GJavaOutput *, GCodeBuffer *, const char *, size_t); - -/* Marque la fin d'une série de commentaires. */ -static GBufferLine *g_java_output_end_comments(GJavaOutput *, GCodeBuffer *); - -/* Ajoute un commentaire à un tampon donné. */ -static GBufferLine *g_java_output_write_comments(GJavaOutput *, GCodeBuffer *, const char *, size_t); - -/* Imprime dans un tampon donné une méthode de comparaison. */ -static void g_java_output_write_comp_sign(GJavaOutput *, GBufferLine *, CompSignType); - -/* Imprime dans un tampon donné un opérateur logique. */ -static void g_java_output_write_cond_operator(GLangOutput *, GBufferLine *, CondOperatorType); - -/* Débute la définition d'une classe. */ -static GBufferLine *g_java_output_start_class(GJavaOutput *, GCodeBuffer *, const GDataType *); - -/* Termine la définition d'une classe. */ -static void g_java_output_end_class(GJavaOutput *, GCodeBuffer *); - -/* Débute la définition d'une routine. */ -static GBufferLine *g_java_output_start_routine_prototype(GJavaOutput *, GCodeBuffer *, const GDataType *); - -/* Termine la définition d'une routine. */ -static void g_java_output_end_routine_prototype(GJavaOutput *, GCodeBuffer *, GBufferLine *); - -/* Commence la définition du corps d'une routine. */ -static void g_java_output_start_routine_body(GJavaOutput *, GCodeBuffer *, GBufferLine *); - -/* Termine la définition du corps d'une routine. */ -static void g_java_output_end_routine_body(GJavaOutput *, GCodeBuffer *); - -/* Commence la définition d'un bloc de code. */ -static GBufferLine *g_java_output_start_code_block(GJavaOutput *, GCodeBuffer *, GBufferLine *, size_t); - -/* Termine la définition d'un bloc de code. */ -static GBufferLine *g_java_output_end_code_block(GJavaOutput *, GCodeBuffer *, GBufferLine *, size_t); - -/* Emballe une expression conditionelle. */ -static GBufferLine *g_java_output_encapsulate_condition(GLangOutput *, GCodeBuffer *, GBufferLine *, bool); - - - -/* Indique le type défini pour une sortie en langage Java. */ -G_DEFINE_TYPE(GJavaOutput, g_java_output, G_TYPE_LANG_OUTPUT); - - -/****************************************************************************** -* * -* Paramètres : klass = classe à initialiser. * -* * -* Description : Initialise la classe des sorties en langage Java. * -* * -* Retour : - * -* * -* Remarques : - * -* * -******************************************************************************/ - -static void g_java_output_class_init(GJavaOutputClass *klass) -{ - -} - - -/****************************************************************************** -* * -* Paramètres : output = instance à initialiser. * -* * -* Description : Initialise une instance de sortie en langage Java. * -* * -* Retour : - * -* * -* Remarques : - * -* * -******************************************************************************/ - -static void g_java_output_init(GJavaOutput *output) -{ - GLangOutput *lang; /* Autre version de l'objet */ - - lang = G_LANG_OUTPUT(output); - - - lang->start_comments = (rlgbuf_fc)g_java_output_start_comments; - lang->cont_comments = (write_comments_fc)g_java_output_continue_comments; - lang->end_comments = (rlgbuf_fc)g_java_output_end_comments; - lang->write_comments = (write_comments_fc)g_java_output_write_comments; - - lang->comp_sign = (write_comp_sign_fc)g_java_output_write_comp_sign; - lang->cond_op = (write_cond_op_fc)g_java_output_write_cond_operator; - - lang->start_class = (rlgbuftp_fc)g_java_output_start_class; - lang->end_class = (lgbuf_fc)g_java_output_end_class; - - lang->start_routine_proto = (rlgbuftp_fc)g_java_output_start_routine_prototype; - lang->end_routine_proto = (lgbufln_fc)g_java_output_end_routine_prototype; - lang->start_routine_body = (lgbufln_fc)g_java_output_start_routine_body; - lang->end_routine_body = (lgbuf_fc)g_java_output_end_routine_body; - - lang->start_code_block = (rlgbuflnsz_fc)g_java_output_start_code_block; - lang->end_code_block = (rlgbuflnsz_fc)g_java_output_end_code_block; - lang->encaps_cond = (lo_buf_ln_bool_fc)g_java_output_encapsulate_condition; - -} - - -/****************************************************************************** -* * -* Paramètres : - * -* * -* Description : Crée une nouvelle sortie en langage Java. * -* * -* Retour : Imprimeur créé. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GLangOutput *g_java_output_new(void) -{ - GBufferLine *result; /* Composant à retourner */ - - result = g_object_new(G_TYPE_JAVA_OUTPUT, NULL); - - return G_LANG_OUTPUT(result); - -} - - -/****************************************************************************** -* * -* 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 : - * -* * -******************************************************************************/ - -static GBufferLine *g_java_output_start_comments(GJavaOutput *output, GCodeBuffer *buffer) -{ - GBufferLine *result; /* Nouvelle ligne à retourner */ - - result = g_code_buffer_append_new_line_fixme(buffer); - - g_buffer_line_append_text(result, BLC_COMMENTS, "/**", 3, RTT_COMMENT, 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 : - * -* * -******************************************************************************/ - -static GBufferLine *g_java_output_continue_comments(GJavaOutput *output, GCodeBuffer *buffer, const char *text, size_t length) -{ - GBufferLine *result; /* Adresse nouvelle à remonter */ - - result = g_code_buffer_append_new_line_fixme(buffer); - - g_buffer_line_append_text(result, BLC_COMMENTS, " * ", 3, RTT_COMMENT, NULL); - - if (length > 0) - g_buffer_line_append_text(result, BLC_COMMENTS, text, length, RTT_COMMENT, 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 : - * -* * -******************************************************************************/ - -static GBufferLine *g_java_output_end_comments(GJavaOutput *output, GCodeBuffer *buffer) -{ - GBufferLine *result; /* Nouvelle ligne à retourner */ - - result = g_code_buffer_append_new_line_fixme(buffer); - - g_buffer_line_append_text(result, BLC_COMMENTS, " */", 3, RTT_COMMENT, 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 : - * -* * -******************************************************************************/ - -static GBufferLine *g_java_output_write_comments(GJavaOutput *output, GCodeBuffer *buffer, const char *text, size_t length) -{ - GBufferLine *result; /* Adresse nouvelle à remonter */ - - result = g_code_buffer_append_new_line_fixme(buffer); - - g_buffer_line_append_text(result, BLC_COMMENTS, "// ", 3, RTT_COMMENT, NULL); - - if (length > 0) - g_buffer_line_append_text(result, BLC_COMMENTS, text, length, RTT_COMMENT, 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 : - * -* * -******************************************************************************/ - -static void g_java_output_write_comp_sign(GJavaOutput *output, GBufferLine *line, CompSignType sign) -{ - g_buffer_line_append_text(line, BLC_ASSEMBLY_HEAD, " ", 1, RTT_RAW, NULL); - - switch (sign) - { - case CST_EQ: - g_buffer_line_append_text(line, BLC_ASSEMBLY_HEAD, "==", 2, RTT_SIGNS, NULL); - break; - case CST_NE: - g_buffer_line_append_text(line, BLC_ASSEMBLY_HEAD, "!=", 2, RTT_SIGNS, NULL); - break; - case CST_LT: - g_buffer_line_append_text(line, BLC_ASSEMBLY_HEAD, "<", 1, RTT_SIGNS, NULL); - break; - case CST_GE: - g_buffer_line_append_text(line, BLC_ASSEMBLY_HEAD, ">=", 2, RTT_SIGNS, NULL); - break; - case CST_GT: - g_buffer_line_append_text(line, BLC_ASSEMBLY_HEAD, ">", 1, RTT_SIGNS, NULL); - break; - case CST_LE: - g_buffer_line_append_text(line, BLC_ASSEMBLY_HEAD, "<=", 2, RTT_SIGNS, NULL); - break; - default: - g_buffer_line_append_text(line, BLC_ASSEMBLY_HEAD, "?", 1, RTT_SIGNS, NULL); - break; - } - - g_buffer_line_append_text(line, BLC_ASSEMBLY_HEAD, " ", 1, RTT_RAW, NULL); - -} - - -/****************************************************************************** -* * -* 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 : - * -* * -******************************************************************************/ - -static void g_java_output_write_cond_operator(GLangOutput *output, GBufferLine *line, CondOperatorType op) -{ - g_buffer_line_append_text(line, BLC_ASSEMBLY_HEAD, " ", 1, RTT_RAW, NULL); - - switch (op) - { - case COT_AND: - g_buffer_line_append_text(line, BLC_ASSEMBLY_HEAD, "&&", 2, RTT_SIGNS, NULL); - break; - case COT_OR: - g_buffer_line_append_text(line, BLC_ASSEMBLY_HEAD, "||", 2, RTT_SIGNS, NULL); - break; - default: - g_buffer_line_append_text(line, BLC_ASSEMBLY_HEAD, "??", 2, RTT_SIGNS, NULL); - break; - } - - g_buffer_line_append_text(line, BLC_ASSEMBLY_HEAD, " ", 1, RTT_RAW, NULL); - -} - - -/****************************************************************************** -* * -* 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 : - * -* * -******************************************************************************/ - -static GBufferLine *g_java_output_start_class(GJavaOutput *output, GCodeBuffer *buffer, const GDataType *type) -{ - GBufferLine *result; /* Adresse nouvelle à remonter */ - char *name; /* Désignation humaine */ - - result = g_code_buffer_append_new_line_fixme(buffer); - - g_buffer_line_append_text(result, BLC_ASSEMBLY_HEAD, "class", 5, RTT_KEY_WORD, NULL); - g_buffer_line_append_text(result, BLC_ASSEMBLY_HEAD, " ", 1, RTT_RAW, NULL); - - name = _g_data_type_to_string(type, true); - g_buffer_line_append_text(result, BLC_ASSEMBLY_HEAD, name, strlen(name), RTT_RAW, NULL); - free(name); - - g_buffer_line_append_text(result, BLC_ASSEMBLY_HEAD, " ", 1, RTT_RAW, NULL); - g_buffer_line_append_text(result, BLC_ASSEMBLY_HEAD, "{", 1, RTT_HOOK, NULL); - - result = g_code_buffer_append_new_line_fixme(buffer); - - g_code_buffer_inc_indentation(buffer); - - 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 : - * -* * -******************************************************************************/ - -static void g_java_output_end_class(GJavaOutput *output, GCodeBuffer *buffer) -{ - GBufferLine *result; /* Adresse nouvelle à remonter */ - - g_code_buffer_dec_indentation(buffer); - - result = g_code_buffer_append_new_line_fixme(buffer); - - g_buffer_line_append_text(result, BLC_ASSEMBLY_HEAD, "}", 1, RTT_HOOK, NULL); - - result = g_code_buffer_append_new_line_fixme(buffer); - - 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 : - * -* * -******************************************************************************/ - -static GBufferLine *g_java_output_start_routine_prototype(GJavaOutput *output, GCodeBuffer *buffer, const GDataType *ret) -{ - GBufferLine *result; /* Adresse nouvelle à remonter */ - - result = g_code_buffer_append_new_line_fixme(buffer); - - /* TODO */ - g_buffer_line_append_text(result, BLC_ASSEMBLY_HEAD, "XXX", 3, RTT_RAW, 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 : - * -* * -******************************************************************************/ - -static void g_java_output_end_routine_prototype(GJavaOutput *output, GCodeBuffer *buffer, GBufferLine *line) -{ - g_buffer_line_append_text(line, BLC_ASSEMBLY_HEAD, ";", 1, RTT_PUNCT, NULL); - -} - - -/****************************************************************************** -* * -* 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 : - * -* * -******************************************************************************/ - -static void g_java_output_start_routine_body(GJavaOutput *output, GCodeBuffer *buffer, GBufferLine *line) -{ - /* - g_buffer_line_append_text(line, BLC_ASSEMBLY_HEAD, " ", 1, RTT_RAW, NULL); - g_buffer_line_append_text(line, BLC_ASSEMBLY_HEAD, "{", 1, RTT_HOOK, NULL); - - g_code_buffer_inc_indentation(buffer); - */ -} - - -/****************************************************************************** -* * -* 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 : - * -* * -******************************************************************************/ - -static void g_java_output_end_routine_body(GJavaOutput *output, GCodeBuffer *buffer) -{ - GBufferLine *line; /* Nouvelle ligne à constituer */ - /* - g_code_buffer_dec_indentation(buffer); - - line = g_code_buffer_append_new_line_fixme(buffer); - - g_buffer_line_append_text(line, BLC_ASSEMBLY_HEAD, "}", 1, RTT_HOOK, NULL); - */ -} - - -/****************************************************************************** -* * -* 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 : - * -* * -******************************************************************************/ - -static GBufferLine *g_java_output_start_code_block(GJavaOutput *output, GCodeBuffer *buffer, GBufferLine *line, size_t count) -{ - GBufferLine *result; /* Nouvelle ligne à utiliser */ - - if (count > 1) - { - g_buffer_line_append_text(line, BLC_ASSEMBLY_HEAD, " ", 1, RTT_RAW, NULL); - g_buffer_line_append_text(line, BLC_ASSEMBLY_HEAD, "{", 1, RTT_HOOK, NULL); - } - - g_code_buffer_inc_indentation(buffer); - - result = g_code_buffer_append_new_line_fixme(buffer); /* FIXME : n° de ligne */ - - 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 : - * -* * -******************************************************************************/ - -static GBufferLine *g_java_output_end_code_block(GJavaOutput *output, GCodeBuffer *buffer, GBufferLine *line, size_t count) -{ - GBufferLine *result; /* Nouvelle ligne à constituer */ - - g_code_buffer_dec_indentation(buffer); - - result = g_code_buffer_append_new_line_fixme(buffer); - - if (count > 1) - { - g_buffer_line_append_text(result, BLC_ASSEMBLY_HEAD, "}", 1, RTT_HOOK, NULL); - g_buffer_line_append_text(result, BLC_ASSEMBLY_HEAD, " ", 1, RTT_RAW, 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 : - * -* * -******************************************************************************/ - -static GBufferLine *g_java_output_encapsulate_condition(GLangOutput *output, GCodeBuffer *buffer, GBufferLine *line, bool opening) -{ - GBufferLine *result; /* Nouvelle ligne à utiliser */ - - result = line; - - if (opening) - g_buffer_line_append_text(result, BLC_ASSEMBLY_HEAD, "(", 1, RTT_HOOK, NULL); - else - g_buffer_line_append_text(result, BLC_ASSEMBLY_HEAD, ")", 1, RTT_HOOK, NULL); - - return result; - -} diff --git a/src/decomp/lang/java.h b/src/decomp/lang/java.h deleted file mode 100644 index 1b9c013..0000000 --- a/src/decomp/lang/java.h +++ /dev/null @@ -1,55 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * java.h - prototypes pour les sorties en langage Java - * - * Copyright (C) 2010 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/>. - */ - - -#ifndef _DECOMP_LANG_JAVA_H -#define _DECOMP_LANG_JAVA_H - - -#include "../output.h" - - - -#define G_TYPE_JAVA_OUTPUT g_java_output_get_type() -#define G_JAVA_OUTPUT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), g_java_output_get_type(), GJavaOutput)) -#define G_IS_JAVA_OUTPUT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), g_java_output_get_type())) -#define G_JAVA_OUTPUT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), G_TYPE_JAVA_OUTPUT, GJavaOutputClass)) -#define G_IS_JAVA_OUTPUT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), G_TYPE_JAVA_OUTPUT)) -#define G_JAVA_OUTPUT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), G_TYPE_JAVA_OUTPUT, GJavaOutputClass)) - - -/* Sortie selon le langage Java (instance) */ -typedef struct _GJavaOutput GJavaOutput; - -/* Sortie selon le langage Java (classe) */ -typedef struct _GJavaOutputClass GJavaOutputClass; - - -/* Indique le type défini pour une sortie en langage Java. */ -GType g_java_output_get_type(void); - -/* Crée une nouvelle sortie en langage Java. */ -GLangOutput *g_java_output_new(void); - - - -#endif /* _DECOMP_LANG_JAVA_H */ |