aboutsummaryrefslogtreecommitdiff
path: root/compilador/errors.py
diff options
context:
space:
mode:
authorIván Ávalos <avalos@disroot.org>2022-11-24 01:08:08 -0600
committerIván Ávalos <avalos@disroot.org>2022-11-24 01:08:08 -0600
commit6b4e9a4e95eb511c194200e38ee323091dc5d7d2 (patch)
treed504cc2b8877a3a48620ada38ab8ff4a9770f4e0 /compilador/errors.py
parent8050c2e40b3a15b92bc7e3c9be4db4c0637e797d (diff)
downloadjavanol-6b4e9a4e95eb511c194200e38ee323091dc5d7d2.tar.gz
javanol-6b4e9a4e95eb511c194200e38ee323091dc5d7d2.tar.bz2
javanol-6b4e9a4e95eb511c194200e38ee323091dc5d7d2.zip
El parser está en proceso de remodelación
Diffstat (limited to 'compilador/errors.py')
-rw-r--r--compilador/errors.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/compilador/errors.py b/compilador/errors.py
index f5b4203..87c925e 100644
--- a/compilador/errors.py
+++ b/compilador/errors.py
@@ -1,4 +1,7 @@
import sys
+from typing import List
+
+from tabla import Token
class Error:
errors = {
@@ -14,3 +17,7 @@ class Error:
def __init__(self, error, numlinea):
print("Error en línea %d: %s" % (numlinea, self.errors[error]), file=sys.stderr)
+
+ def __init__(self, got: Token, expects: List[Token], numlinea = int):
+ strexp = ', '.join(['`%s\'' % e.value for e in expects])
+ self.message = "Error en la línea %d, se encontró `%s', pero se esperaba %s" % (numlinea, got.value, strexp)