-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy patherrors.py
More file actions
50 lines (38 loc) · 1.1 KB
/
errors.py
File metadata and controls
50 lines (38 loc) · 1.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
"""
Jerarquia d'excepcions per a l'intèrpret de mini FORTH.
Clasificació d'errors:
- Lèxics: Tokens no reconeguts per la gramàtica
- Sintàctics: Estructura sintàctica incorrecta
- Semàntics: Errors de context y execució
"""
class ForthError(Exception):
"""
Excepció base per tots els errors
"""
pass
class ForthLexicalError(ForthError):
"""
Errors lèxics detectats pel lexer.
Exemples:
- Tokens no reconeguts a la gramàtica: @, $, #, etc.
"""
pass
class ForthSyntaxError(ForthError):
"""
Errors sintàctics detectats pel parser.
Exemples:
- Tokens reconeguts però estructura sintàctica incorrecta: : ;
"""
pass
class ForthSemanticError(ForthError):
"""
Errore semàntics. Els detecta tots el visitor, però si fos un compilador uns es detectarien en fase de compilació i altres en fase d'execució
Exemples estàtics (compilació):
- Funció no definida
- if fora de funció
- recurse fora de funció
Exemples dinàmics (runtime):
- Divisió per zero
- Pila buida
"""
pass