OpenCores
URL https://opencores.org/ocsvn/minimips/minimips/trunk

Subversion Repositories minimips

[/] [minimips/] [trunk/] [gasm/] [include/] [dialogue.h] - Blame information for rev 15

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 13 louismarie
/*********************************************************************************************/
2
/* MODULE DIALOGUE                                                                           */
3
/* ce module a pour but d'afficher les erreurs rencontrées lors de l'exécution du programme. */
4
/* Il peut s'agir d'erreurs fatales, correspondant à un plantage, ou d'erreurs de syntaxe    */
5
/* correspondant à une erreur de l'utilisateur, par exemple dans un fichier source.          */
6
/* Sont également gérés les avertissements et les indications en mode verbose.               */
7
/*                                                                                           */
8
/* Le module exporte des noms symboliques pour tous les codes d'erreurs et dispose de deux   */
9
/* points d'entrées pour les deux types d'erreurs                                            */
10
/*                                                                                           */
11
/*********************************************************************************************/
12
 
13
#ifndef M_ERREUR_FLAG
14
#define M_ERREUR_FLAG
15
 
16
/*********************************************************************************************
17
 *   Identification de l'erreur                                                              *
18
 *********************************************************************************************/
19
 
20
/* Ce drapeau doit etre positionné à chaque erreur rencontrée                                */
21
extern int err_code;
22
 
23
/* Il faut garder à l'esprit que rien n'empeche un module d'utiliser les codes d'erreurs     *
24
 * qui ont à l'origine été créés pour un autre module.                                       */
25
 
26
#define NO_ERR 0        /* Pas d'erreur détectée.                                            */
27
 
28
/* Erreurs fatales                                                                           */
29
#define F_FLUX_NULL     1       /* Tentative de lecture dans un flux NULL                    */
30
#define F_ERR_LECT      2       /* Erreur de lecture imprévisible                            */
31
#define F_ERR_OUV       3       /* Erreur d'ouverture de fichier imprévisible                */
32
#define F_ERR_MEM       4       /* Erreur d'allocation, mémoire insuffisante ?               */
33
 
34
/* Erreurs plutot du formateur                                                               */
35
#define S_ERR_FORMAT    301
36
#define S_INT_INVALID   302     /* Entier invalide                                           */
37
#define S_ALPHA_LONG    303     /* Alpha trop long                                           */
38
#define S_ALPHA_INVALID 304
39
#define S_CAR_INVALID   305
40
 
41
/* Erreurs plutot du préprocesseur                                                           */
42
#define S_CIRCULAR_FILE         401     /* Inclusion circulaire de fichiers                  */
43
#define S_CIRCULAR_MACRO        402     /* Appel circulaire de macros                        */
44
#define S_FICH_NON_TROUVE       403     /* Fichier spécifié en argument introuvable          */
45
#define S_DEF_MACRO_EOF         404     /* Troisème accolade fermante non rencontrée         */
46
#define S_USE_MACRO_EOF         405     /* Troisème accolade fermante non rencontrée         */
47
#define S_NOM_MAC_INVALID       406     /* Nom de la macro dans sa déclaration invalide      */
48
#define S_NOM_INCFICH_INVALID   407     /* Nom du fichier à inclure invalide                 */
49
#define S_MAC_NO_MATCH          408     /* Macro incompatible avec sa définition             */
50
#define S_MAC_TROP_PARAM        409     /* Paramètres non utlisés par la macro               */
51
 
52
/* Erreurs plutot du du preparateur                                                          */
53
#define S_ERR_DCL       501
54
#define S_DCL_VIDE      502
55
#define S_DCL_NON_TERM  503
56
#define S_BAD_PROP      504
57
#define S_BAD_VAL       505
58
#define S_BAD_FUN       506
59
#define S_BAD_ARG       507
60
#define S_DEP_SST       508     /* Dépassement de la capacité des sous-types.                */
61
#define S_DEP_FUNC_NB   510     /* Dépassement du nombre maximal de fonctions allouables.    */
62
#define S_BAD_SST_DEC   511     /* Déclaration du nb de sous-type manquante ou insuffisante. */
63
#define S_SEC_SST_DEC   512     /* Second appel à la commande SET SSTNUM non autorisé.       */
64
#define S_REDEF_INS     513     /* Une instruction est redéfinie dans le fichier Syntaxe.    */
65
 
66
/* Erreurs pultot de l'analyseur                                                             */
67
#define S_SYN_ERR       601     /* Erreur de syntaxe dans le fichier source.                 */
68
#define S_FUN_ERR       602     /* Erreur lors de l'application des fonctions de l'adapt.    */
69
#define S_ADAP_ERR      603     /* Erreur de positionnement du eval_code par l'adaptateur.   */
70
 
71
/* Erreurs plutot de l'adaptateur.                                                           */
72
#define S_FUN_INAP              701     /* Erreur, fonction non applicable.                  */
73
#define S_ARG_INCOMP            702     /* Args incompatbiles, erreur dans fichier Syntaxe.  */
74
#define S_SIGNED_TL             703     /* Entier trop long pour un codage signé             */
75
#define S_UNSIGNED_TL           704     /* Entier trop long pour le codage non-signé         */
76
#define S_REDEF_ETIQ            705     /* Etiquette déjà exisante.                          */
77
#define S_BAD_ETIQ              706     /* L'étiquette n'existe pas dans la table.           */
78
#define S_ADR_INCONNUE          707     /* L'adresse d'implantation est indéterminée.        */
79
#define S_UNSIGNED_EXPECTED     708     /* Entier non signé attendu                          */
80
#define S_BAD_ALIGN             709     /* Saut à une étiquette non alignée sur 32 bits      */
81
#define S_TOO_FAR               710     /* Saut à une adresse trop éloignée                  */
82
 
83
/* Erreurs plutot du synthetiseur.                                                           */
84
 
85
/* Warnings                                                                                  */
86
#define W_REGLE_TYPAGE          4001    /* Règle invalide, ignorée                           */
87
#define W_NO_LIST_INC           4002    /* La fonctionalité include désactive la liste       */
88
#define W_NO_LIST_STDIN         4003    /* La lecture dans le flux standard aussi            */
89
#define W_REDEF_MAC             4004    /* Redéfinition d'une macro                          */
90
#define W_UNDEF_NOMAC           4005    /* Tentative de suppression d'une macro non définie  */
91
#define W_REDEF_CODE            5001    /* Réutilisation du code, les sst seront les mêmes   */
92
#define W_REDEF_SST             5002    /* Réutilisation du nom de sous-type                 */
93
#define W_NO_SYNTAX             5004    /* Pas de fichier Syntax trouvé                      */
94
#define W_SEPLEX_INIT           6001    /* seplex non initialisé dans fichier Syntaxe        */
95
#define W_SRCE_MOD              8001    /* Le flux source a été modifié                      */
96
#define W_ARG_INC               9001    /* Mauvaise utilisation des arguments                */
97
#define W_FICH_DEF_MACRO        9002    /* Fichier macro principal non ouvert                */
98
#define W_MACRO_MANQ            9003    /* Auncun fichier des macros par défaut chargé       */
99
 
100
/* Commentaires.                                                                             */
101
 
102
/* Main                                                                                      */
103
#define B_INIT_SYNTAX           -901    /* Initialisation de la syntaxe de l'assembleur      */
104
#define B_INIT_MACRO            -902    /* Initialisation des macros par défaut              */
105
#define B_LECT_SRC              -903    /* Lecture des sources..                             */
106
#define B_STR_OBJ               -904    /* Enregistrement du fichier objet...                */
107
#define B_STR_LST               -905    /* Creation de la liste d'assemblage...              */
108
#define B_ERR_REP               -906    /* Rapport d'erreurs :                               */
109
#define B_NBR_ERR_SYN           -907    /* erreurs détectées lors de la synthèse             */
110
#define B_NBR_ERR_ANA           -908    /* erreurs détectées lors de l'analyse               */
111
#define B_SYN                   -909    /* Analyse du code..                                 */
112
#define B_ANA                   -910    /* Synthèse..                                        */
113
 
114
/* Preparateur                                                                               */
115
#define B_CASSE                 -600    /* Basculement en mode sensible à la casse           */
116
#define B_NOCASSE               -601    /* Basculement en mode insensible à la casse         */
117
#define B_MAC_DEF               -602    /* Détection d'un fichier de pseudo-instructions     */
118
#define B_INIT_D                -603    /* Activation du support des macros                  */
119
#define B_INIT_U                -604    /* Activation du support de la supression de macros  */
120
#define B_INIT_I                -605    /* Activation du support de l'inclusion de fichiers  */
121
#define B_INIT_SEP              -606    /* Initialisation du séparateur d'instructions       */
122
#define B_PREP_SST              -607    /* Préparation pour l'ajout de sous-types            */
123
#define B_ADD_SST               -608    /* Nouveau sous-type détecté                         */
124
 
125
/* Adaptateur                                                                                */
126
#define B_TABLAB                -700    /* Table des étiquettes                              */
127
 
128
/* Preprocesseur                                                                             */
129
#define B_NO_MACRO              -401    /* Aucune macro définie                              */
130
#define B_MACRO_DISPO           -402    /* Voici la liste des macros disponibles             */
131
 
132
/*********************************************************************************************
133
 *   Génération des messages d'erreur                                                        *
134
 *********************************************************************************************/
135
 
136
/* Exportation du controleur de blabla.                                                      */
137
extern int verbose;
138
 
139
extern char sep_fich_inclus[];  /* "Inclus depuis"                                           */
140
char * search_msg(); /* Fonction de recherche du message correspondant au code d'erreur.     */
141
void display_help(); /* Fonction d'affichage de l'aide en ligne.                             */
142
 
143
void affiche_message(char * orig, int ligne);
144
 
145
#define DIALOGUE(ptr_org, ligne, code)\
146
{\
147
        err_code=code;\
148
        affiche_message(ptr_org, ligne);\
149
}
150
 
151
#endif

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.