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/expr/access.c | |
| parent | dcc0438ff24efd5958b8d46940eb395ff2b7ed77 (diff) | |
Removed most of the code related to non-working decompilation.
Diffstat (limited to 'src/decomp/expr/access.c')
| -rw-r--r-- | src/decomp/expr/access.c | 249 | 
1 files changed, 0 insertions, 249 deletions
| diff --git a/src/decomp/expr/access.c b/src/decomp/expr/access.c deleted file mode 100644 index b16ee36..0000000 --- a/src/decomp/expr/access.c +++ /dev/null @@ -1,249 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * access.c - représentation des accès à des éléments d'entités - * - * Copyright (C) 2012-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 "access.h" - - -#include "../expression-int.h" - - - -/* Définition d'un accès quelconque (instance) */ -struct _GAccessExpression -{ -    GDecExpression parent;                  /* A laisser en premier        */ - -    GDecExpression *owner;                  /* Destination de l'accessat°  */ -    GDecExpression *target;                 /* Source de l'accessation     */ - -}; - - -/* Définition d'un accès quelconque (classe) */ -struct _GAccessExpressionClass -{ -    GDecExpressionClass parent;             /* A laisser en premier        */ - -}; - - - -/* Initialise la classe des accessations quelconques. */ -static void g_access_expression_class_init(GAccessExpressionClass *); - -/* Initialise une instance d'accessation quelconque. */ -static void g_access_expression_init(GAccessExpression *); - -/* Visite un ensemble hiérarchique d'instructions décompilées. */ -static bool g_access_expression_visit(GAccessExpression *, dec_instr_visitor_cb, DecInstrVisitFlags, void *); - -/* Remplace une instruction décompilée par une autre. */ -static bool g_access_expression_replace(GAccessExpression *, GDecInstruction *, GDecInstruction *); - -/* Imprime pour l'écran un version humaine d'une expression. */ -static GBufferLine *g_access_expression_print(const GAccessExpression *, GCodeBuffer *, GBufferLine *, GLangOutput *); - - - -/* Indique le type défini pour un accès quelconque. */ -G_DEFINE_TYPE(GAccessExpression, g_access_expression, G_TYPE_DEC_EXPRESSION); - - -/****************************************************************************** -*                                                                             * -*  Paramètres  : klass = classe à initialiser.                                * -*                                                                             * -*  Description : Initialise la classe des accessations quelconques.           * -*                                                                             * -*  Retour      : -                                                            * -*                                                                             * -*  Remarques   : -                                                            * -*                                                                             * -******************************************************************************/ - -static void g_access_expression_class_init(GAccessExpressionClass *klass) -{ - -} - - -/****************************************************************************** -*                                                                             * -*  Paramètres  : expr = instance à initialiser.                               * -*                                                                             * -*  Description : Initialise une instance d'accessation quelconque.            * -*                                                                             * -*  Retour      : -                                                            * -*                                                                             * -*  Remarques   : -                                                            * -*                                                                             * -******************************************************************************/ - -static void g_access_expression_init(GAccessExpression *expr) -{ -    GDecInstruction *instr;                 /* Autre version de l'objet    */ - -    instr = G_DEC_INSTRUCTION(expr); - -    instr->visit = (dec_instr_visit_fc)g_access_expression_visit; -    instr->replace = (dec_instr_replace_fc)g_access_expression_replace; -    instr->print = (dec_instr_print_fc)g_access_expression_print; - -} - - -/****************************************************************************** -*                                                                             * -*  Paramètres  : owner  = entité qui accueille la cible accédée.              * -*                target = élément du propriétaire auquel on accède.           * -*                                                                             * -*  Description : Représente l'accès à un élément d'une entité.                * -*                                                                             * -*  Retour      : Expression mise en place.                                    * -*                                                                             * -*  Remarques   : -                                                            * -*                                                                             * -******************************************************************************/ - -GDecInstruction *g_access_expression_new(GDecExpression *owner, GDecExpression *target) -{ -    GAccessExpression *result;              /* Expression à retourner      */ - -    result = g_object_new(G_TYPE_ACCESS_EXPRESSION, NULL); - -    result->owner = owner; -    result->target = target; - -    return G_DEC_INSTRUCTION(result); - -} - - -/****************************************************************************** -*                                                                             * -*  Paramètres  : expr     = première instruction à venir visiter.             * -*                callback = procédure à appeler à chaque instruction visitée. * -*                flags    = moments des appels à réaliser en retour.          * -*                data     = données quelconques associées au visiteur.        * -*                                                                             * -*  Description : Visite un ensemble hiérarchique d'instructions décompilées.  * -*                                                                             * -*  Retour      : true si le parcours a été jusqu'à son terme, false sinon.    * -*                                                                             * -*  Remarques   : -                                                            * -*                                                                             * -******************************************************************************/ - -static bool g_access_expression_visit(GAccessExpression *expr, dec_instr_visitor_cb callback, DecInstrVisitFlags flags, void *data) -{ -    bool result;                            /* Bilan à retourner           */ - -    result = _g_dec_instruction_visit(G_DEC_INSTRUCTION(expr->owner), G_DEC_INSTRUCTION(expr), -                                      callback, flags, data); - -    if (result) -        result = _g_dec_instruction_visit(G_DEC_INSTRUCTION(expr->target), G_DEC_INSTRUCTION(expr), -                                          callback, flags, data); - -    return result; - -} - - -/****************************************************************************** -*                                                                             * -*  Paramètres  : expr = première instruction à venir ausculter.               * -*                old  = instruction décompilée à venir remplacer.             * -*                new  = instruction décompilée à utiliser dorénavant.         * -*                                                                             * -*  Description : Remplace une instruction décompilée par une autre.           * -*                                                                             * -*  Retour      : true si un remplacement a été effectué, false sinon.         * -*                                                                             * -*  Remarques   : -                                                            * -*                                                                             * -******************************************************************************/ - -static bool g_access_expression_replace(GAccessExpression *expr, GDecInstruction *old, GDecInstruction *new) -{ -    bool result;                            /* Bilan à retourner           */ - -    if (expr->owner == G_DEC_EXPRESSION(old)) -    { -        g_object_unref(G_OBJECT(expr->owner)); -        g_object_ref(G_OBJECT(new)); -        expr->owner = G_DEC_EXPRESSION(new); - -        result = true; - -    } -    else -        result = g_dec_instruction_replace(G_DEC_INSTRUCTION(expr->owner), old, new); - -    if (expr->target == G_DEC_EXPRESSION(old)) -    { -        g_object_unref(G_OBJECT(expr->target)); -        g_object_ref(G_OBJECT(new)); -        expr->target = G_DEC_EXPRESSION(new); - -        result = true; - -    } -    else -        result |= g_dec_instruction_replace(G_DEC_INSTRUCTION(expr->target), old, new); - -    return result; - -} - - -/****************************************************************************** -*                                                                             * -*  Paramètres  : expr   = expression à transcrire en version humaine.         * -*                buffer = tampon où doit se réaliser l'insertion.             * -*                line   = ligne d'impression prête à emploi ou NULL.          * -*                output = langage de programmation de sortie.                 * -*                                                                             * -*  Description : Imprime pour l'écran un version humaine d'une expression.    * -*                                                                             * -*  Retour      : -                                                            * -*                                                                             * -*  Remarques   : -                                                            * -*                                                                             * -******************************************************************************/ - -static GBufferLine *g_access_expression_print(const GAccessExpression *expr, GCodeBuffer *buffer, GBufferLine *line, GLangOutput *output) -{ -    GBufferLine *result;                    /* Ligne à retourner           */ - -    result = g_dec_instruction_print(G_DEC_INSTRUCTION(expr->owner), -                                     buffer, line, output); - -    g_buffer_line_append_text(result, BLC_ASSEMBLY_HEAD, ".", 3, RTT_PUNCT, NULL); - -    result = g_dec_instruction_print(G_DEC_INSTRUCTION(expr->target), -                                     buffer, result, output); - -    return result; - -} | 
