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