diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2016-01-28 23:32:25 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2016-01-28 23:32:25 (GMT) |
commit | 16e0fd9d89ef433848678dfc8dd20426844a2868 (patch) | |
tree | 79075ae02c133cea21ffb555b1086aae833b3aac /tools/d2c/args.h | |
parent | 66c99d59d6a6d533de0bb65488de8243213bcdea (diff) |
Cleaned, rewritten and improved the whole code of the compiler.
Diffstat (limited to 'tools/d2c/args.h')
-rw-r--r-- | tools/d2c/args.h | 138 |
1 files changed, 0 insertions, 138 deletions
diff --git a/tools/d2c/args.h b/tools/d2c/args.h deleted file mode 100644 index b9f210b..0000000 --- a/tools/d2c/args.h +++ /dev/null @@ -1,138 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * args.h - prototypes pour la gestion des arguments dans leur ensemble - * - * Copyright (C) 2015 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_ARGS_H -#define _TOOLS_ARGS_H - - -#include "bits.h" -#include "pproc.h" - - -/* Liste des fonctions de conversions présentes */ -typedef struct _conv_list conv_list; - - - -/* -------------------------- REPRESENTATION D'UN ARGUMENT -------------------------- */ - - -/* Types d'opérations unaires */ -typedef enum _ConvUnaryOperation -{ - CUO_NOT, /* NOT (booléen) */ - - CUO_COUNT - -} ConvUnaryOperation; - -/* Types d'opérations binaires */ -typedef enum _ConvBinaryOperation -{ - CBO_AND, /* Et logique */ - CBO_EOR, /* Ou exclusif (booléen) */ - - CBO_COUNT - -} ConvBinaryOperation; - - -/* Représentation d'une expression de conversion */ -typedef struct _arg_expr_t arg_expr_t; - - -/* Référence une variable en tant qu'expression de conversion. */ -arg_expr_t *build_arg_expr_from_name(char *); - -/* Conserve une valeur en tant qu'expression de conversion. */ -arg_expr_t *build_arg_expr_from_number(unsigned long ); - -/* Conserve une valeur en tant qu'expression de conversion. */ -arg_expr_t *build_arg_expr_from_binval(char *); - -/* Conserve une valeur en tant qu'expression de conversion. */ -arg_expr_t *build_arg_expr_from_hexval(char *); - -/* Construit une base d'expression de conversion composée. */ -arg_expr_t *build_composed_arg_expr(char *, char *); - -/* Etend une base d'expression de conversion composée. */ -arg_expr_t *extend_composed_arg_expr(arg_expr_t *, char *); - -/* Traduit une opération unaire sur expression de conversion. */ -arg_expr_t *build_unary_arg_expr(arg_expr_t *, ConvUnaryOperation); - -/* Traduit une opération binaire sur expression de conversion. */ -arg_expr_t *build_binary_arg_expr(arg_expr_t *, arg_expr_t *, ConvBinaryOperation); - -/* Supprime tous les éléments mis en place pour un argument. */ -void delete_arg_expr(arg_expr_t *); - -/* Détermine la taille en bits d'une expression donnée. */ -bool compute_arg_expr_size(const arg_expr_t *, const coding_bits *, const conv_list *, unsigned int *); - -/* S'assure du marquage des expressions pre-requises. */ -bool ensure_arg_expr_content_fully_marked(arg_expr_t *, const coding_bits *, const conv_list *); - -/* S'assure de la déclaration des expressions pre-requises. */ -bool ensure_arg_expr_content_fully_declared(arg_expr_t *, int, const coding_bits *, const conv_list *, unsigned int); - -/* S'assure de la définition des expressions pre-requises. */ -bool ensure_arg_expr_content_fully_defined(arg_expr_t *, int, const char *, const coding_bits *, const conv_list *, const pre_processor *); - -/* Définit une expression utilisée dans une conversion. */ -bool define_arg_expr(const arg_expr_t *, int, const coding_bits *, const conv_list *); - - - -/* ----------------------- MANIPULATION DE LISTES D'ARGUMENTS ----------------------- */ - - -/* Liste d'expressions utilisées en arguments de conversion */ -typedef struct _arg_list_t arg_list_t; - - -/* Crée une liste d'arguments de conversion. */ -arg_list_t *build_arg_list(arg_expr_t *); - -/* Libère la mémoire occupée par une liste d'expressions. */ -void delete_arg_list(arg_list_t *); - -/* Ajoute un élément à une liste d'arguments de conversion. */ -arg_list_t *extend_arg_list(arg_list_t *, arg_expr_t *); - -/* S'assure du marquage des expressions pre-requises. */ -bool ensure_arg_list_content_fully_marked(arg_list_t *, const coding_bits *, const conv_list *); - -/* S'assure de la déclaration des expressions pre-requises. */ -bool ensure_arg_list_content_fully_declared(arg_list_t *, int, const coding_bits *, const conv_list *, unsigned int); - -/* S'assure de la définition des expressions pre-requises. */ -bool ensure_arg_list_content_fully_defined(arg_list_t *, int, const char *, const coding_bits *, const conv_list *, const pre_processor *); - -/* Définit les variables associées à un appel de fonction. */ -bool define_arg_list(const arg_list_t *, int, const coding_bits *, const conv_list *); - - - -#endif /* _TOOLS_ARGS_H */ |