Adding variable information on errors
This commit is contained in:
parent
a22bc69491
commit
102f08c2cf
@ -15,3 +15,11 @@ afficher l;
|
||||
# afficher x + 3, 3 + y;
|
||||
# x = -x;
|
||||
# afficher x;
|
||||
|
||||
# entier x = 2 + 3 * 4;
|
||||
# entier y = 3 * 4 + 2;
|
||||
|
||||
liste l = [1, 2, 3];
|
||||
|
||||
afficher l[2];
|
||||
|
||||
|
@ -3,13 +3,13 @@ entier age = 23;
|
||||
booléen majeur = vrai;
|
||||
|
||||
booléen ingénieur;
|
||||
|
||||
|
||||
majeur = faux;
|
||||
|
||||
|
||||
afficher nom, age, majeur;
|
||||
|
||||
|
||||
#Ces lignes devraient donner une erreur
|
||||
# Ces lignes devraient donner une erreur
|
||||
# majeur = 42;
|
||||
|
||||
# afficher majeur;
|
||||
|
@ -14,11 +14,11 @@ class Variables:
|
||||
def __init__(self, typ, value = None):
|
||||
assert typ in self.types.keys(), "Ce type de variable est inconnu"
|
||||
self.type = typ
|
||||
assert self.checkType(value, typ), "Le type n'est pas équivalent"
|
||||
assert self.checkType(value, typ), f"Le type n'est pas équivalent: { value } n'est pas {typ}"
|
||||
self.value = value if (value is not None) else self.default(typ)
|
||||
|
||||
def set(self, value):
|
||||
assert self.checkType(value, self.type), "Le type n'est pas équivalent"
|
||||
assert self.checkType(value, self.type), f"Le type n'est pas équivalent: {value} n'est pas {self.type}"
|
||||
self.value = value
|
||||
|
||||
def __str__(self):
|
||||
@ -61,7 +61,7 @@ class Variables:
|
||||
print(f"{trace_format}déclare {name} = {value}{reset_format}", file=sys.stderr)
|
||||
|
||||
def assign(self, name, value):
|
||||
assert name in self.variables, f"la variable n'éxiste pas"
|
||||
assert name in self.variables, f"la variable {name} n'éxiste pas"
|
||||
self.variables[name].set(value)
|
||||
if self.trace:
|
||||
print(f"{trace_format}modifie {name} = {value}{reset_format}", file=sys.stderr)
|
||||
|
Loading…
x
Reference in New Issue
Block a user