1 | |
|
2 | |
|
3 | |
|
4 | |
|
5 | |
|
6 | |
|
7 | |
|
8 | |
|
9 | |
|
10 | |
|
11 | |
|
12 | |
package ProjetCompil.Verif.Src; |
13 | |
|
14 | 17 | public enum ErreurContext { |
15 | 1 | ErreurVariableNonDeclaree, |
16 | 1 | ErreurBorneNonEntier, |
17 | 1 | ErreurBorneDefinitionIntervalleInverse, |
18 | 1 | ErreurBorneDefinitionIntervalleVide, |
19 | 1 | ErreurTypeNonDeclare, |
20 | 1 | ErreurRedefinitionVariable, |
21 | 1 | ErreurIdentificateurVarAttendu, |
22 | 1 | ErreurAffectionIncompatible, |
23 | 1 | ErreurOperationIncompatible, |
24 | 1 | ErreurIdentificateurVarOuConstanteAttendu, |
25 | 1 | ErreurPasFor, |
26 | 1 | ErreurCondition, |
27 | 1 | ErreurWrite, |
28 | 1 | ErreurLecture, |
29 | 1 | ErreurNonRepertoriee; |
30 | |
|
31 | |
void leverErreurContext(String s, int numLigne) throws ErreurVerif { |
32 | 1 | System.err.println("Erreur contextuelle : "); |
33 | 1 | switch (this) { |
34 | |
case ErreurVariableNonDeclaree: |
35 | 0 | System.err.print("La variable " + s + " n'a pas été préalablement définie"); |
36 | 0 | break; |
37 | |
case ErreurBorneNonEntier: |
38 | 0 | System.err.print("La borne utilisée (\"" + s + "\") n'est pas de type entier"); |
39 | 0 | break; |
40 | |
case ErreurBorneDefinitionIntervalleInverse: |
41 | 0 | System.err.print("La borne inférieur est plus grande que la borne supérieur"); |
42 | 0 | break; |
43 | |
case ErreurBorneDefinitionIntervalleVide: |
44 | 0 | System.err.print("La borne inférieur et la borne supérieur sont égales"); |
45 | 0 | break; |
46 | |
case ErreurTypeNonDeclare: |
47 | 0 | System.err.print("Le type " + s + " n'a pas été préalablement définie"); |
48 | 0 | break; |
49 | |
case ErreurRedefinitionVariable: |
50 | 0 | System.err.print("La variable " + s + " a déjà été définie"); |
51 | 0 | break; |
52 | |
case ErreurIdentificateurVarAttendu: |
53 | 0 | System.err.print("Un nom de variable est attendus, \"" + s + "\" n'en n'est pas"); |
54 | 0 | break; |
55 | |
case ErreurAffectionIncompatible: |
56 | 1 | System.err.print("La variable n'est pas compatible avec l'expression : " + s); |
57 | 1 | break; |
58 | |
case ErreurOperationIncompatible: |
59 | 0 | System.err.print("L'operateur \""+ s +"\" n'est pas compatible avec les types de variable utilisés"); |
60 | 0 | break; |
61 | |
case ErreurIdentificateurVarOuConstanteAttendu: |
62 | 0 | System.err.print("Un nom de variable ou une constante est attendus, \"" + s + "\" n'en n'est pas"); |
63 | 0 | break; |
64 | |
case ErreurPasFor: |
65 | 0 | System.err.print("Le pas de la boucle for doit être un interval"); |
66 | 0 | break; |
67 | |
case ErreurCondition: |
68 | 0 | System.err.print("La condition de l'instruction \"" + s + "\" doit être booléenne"); |
69 | 0 | break; |
70 | |
case ErreurWrite: |
71 | 0 | System.err.print("L'instruction Write attends des expresssions de type Interval, Réel ou Chaine de caractère. Expression de type \""+s+"\" utilisée"); |
72 | 0 | break; |
73 | |
case ErreurLecture: |
74 | 0 | System.err.print("L'instruction Read attends des expresssions de type Interval ou Réel. Expression de type \""+s+"\" utilisée"); |
75 | 0 | break; |
76 | |
|
77 | |
default: |
78 | 15 | System.err.print("non repertoriee"); |
79 | |
} |
80 | 1 | System.err.println(" ... ligne " + numLigne); |
81 | 1 | throw new ErreurVerif(); |
82 | |
} |
83 | |
|
84 | |
} |
85 | |
|
86 | |
|