summaryrefslogtreecommitdiff
path: root/tools/d2c/rules.h
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2016-01-28 23:32:25 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2016-01-28 23:32:25 (GMT)
commit16e0fd9d89ef433848678dfc8dd20426844a2868 (patch)
tree79075ae02c133cea21ffb555b1086aae833b3aac /tools/d2c/rules.h
parent66c99d59d6a6d533de0bb65488de8243213bcdea (diff)
Cleaned, rewritten and improved the whole code of the compiler.
Diffstat (limited to 'tools/d2c/rules.h')
-rw-r--r--tools/d2c/rules.h120
1 files changed, 0 insertions, 120 deletions
diff --git a/tools/d2c/rules.h b/tools/d2c/rules.h
deleted file mode 100644
index cac6a55..0000000
--- a/tools/d2c/rules.h
+++ /dev/null
@@ -1,120 +0,0 @@
-
-/* Chrysalide - Outil d'analyse de fichiers binaires
- * rules.h - prototypes pour les variations de décodage selon certaines conditions
- *
- * Copyright (C) 2014 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 <http://www.gnu.org/licenses/>.
- */
-
-
-#ifndef _TOOLS_RULES_H
-#define _TOOLS_RULES_H
-
-
-#include "args.h"
-#include "bits.h"
-#include "conv.h"
-#include "pproc.h"
-
-
-
-/* -------------------------- CONDITIONS DE DECLENCHEMENTS -------------------------- */
-
-
-/* Types de comparaison */
-typedef enum _CondCompType
-{
- CCT_EQUAL, /* Egalité '==' */
- CCT_DIFF, /* Différence '!=' */
- CCT_AND /* Et logique '&' */
-
-} CondCompType;
-
-/* Types de combinaison d'expressions */
-typedef enum _CondOpType
-{
- COT_AND, /* Combinaison ET ('&&') */
- COT_OR /* Combinaison OU ('||') */
-
-} CondOpType;
-
-/* Expression d'une condition */
-typedef struct _cond_expr cond_expr;
-
-
-/* Crée une expression conditionnelle simple. */
-cond_expr *build_simple_cond_expression(char *, CondCompType, char *, bool);
-
-/* Crée une expression conditionnelle composée. */
-cond_expr *build_composed_cond_expression(cond_expr *, CondOpType, cond_expr *);
-
-
-
-/* ------------------------- REGLES ET ACTIONS CONSEQUENTES ------------------------- */
-
-
-/* Conséquence en cas de condition remplie */
-typedef enum _CondActionType
-{
- CAT_SEE, /* Renvoi vers une instruction */
- CAT_UNPREDICTABLE, /* Cas de figure improbable */
- CAT_CALL, /* Appel à une fonction C */
- CAT_CHECKED_CALL /* Appel à une fonction C */
-
-} CondActionType;
-
-/* Définition d'une action de règle */
-typedef struct _rule_action
-{
- CondActionType type; /* Conséquence d'une validation*/
-
- union
- {
- /* CAT_SEE */
- char *details; /* Eventuel complément d'info. */
-
- /* CAT_CALL */
- struct
- {
- char *callee; /* Fonction appelée */
- arg_list_t *args; /* Arguments à fournir */
-
- };
-
- };
-
-} rule_action;
-
-/* Règles de décodage supplémentaires */
-typedef struct _decoding_rules decoding_rules;
-
-
-/* Crée un nouveau rassemblement de règles de décodage. */
-decoding_rules *create_decoding_rules(void);
-
-/* Supprime de la mémoire un ensemble de règles supplémentaires. */
-void delete_decoding_rules(decoding_rules *);
-
-/* Ajoute une règle complète à la définition d'un codage. */
-void register_conditional_rule(decoding_rules *, cond_expr *, const rule_action *);
-
-/* Traduit en code les éventuelles règles présentes. */
-bool write_decoding_rules(decoding_rules *, CondActionType, int, const char *, const char *, const coding_bits *, const conv_list *, const pre_processor *, bool *);
-
-
-
-#endif /* _TOOLS_RULES_H */