aboutsummaryrefslogtreecommitdiff
path: root/compilador/lexer.py
diff options
context:
space:
mode:
authorIván Ávalos <avalos@disroot.org>2022-11-16 20:07:28 -0600
committerIván Ávalos <avalos@disroot.org>2022-11-16 20:07:28 -0600
commitb20e23d221ac418deb8fa495fa375f715511f953 (patch)
tree9731460f5f3b95128f33e1a5bebaf92eeeae9c33 /compilador/lexer.py
parente4cf758129e81cf3e400a1432ec2d6604fe67a2d (diff)
downloadjavanol-b20e23d221ac418deb8fa495fa375f715511f953.tar.gz
javanol-b20e23d221ac418deb8fa495fa375f715511f953.tar.bz2
javanol-b20e23d221ac418deb8fa495fa375f715511f953.zip
Se añade tabla de símbolos a la interfaz
Diffstat (limited to 'compilador/lexer.py')
-rw-r--r--compilador/lexer.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/compilador/lexer.py b/compilador/lexer.py
index 1952a16..ec7d0a4 100644
--- a/compilador/lexer.py
+++ b/compilador/lexer.py
@@ -33,7 +33,7 @@ class Selector(Enum):
ENTERO = 5
class Lexer:
- def __init__(self, data):
+ def __init__(self, data, input_file):
self.tabla = TablaLex()
self.numlinea = 1
self.selector = Selector.NINGUNO
@@ -44,6 +44,9 @@ class Lexer:
self.recol_ident = ''
self.recol_entero = ''
self.data = data
+ self.tabla_file = None
+ if input_file:
+ self.tabla_file = input_file + '.tab'
def inicio(self):
for l in self.data.splitlines():
@@ -56,7 +59,8 @@ class Lexer:
self.numlinea += 1
# Imprimir tabla de símbolos
- print (str(self.tabla))
+ if self.tabla_file:
+ self.tabla.exportar(self.tabla_file)
Parser(self.tabla).inicio()
@@ -203,3 +207,6 @@ class Lexer:
def insertar_tabla(self, token, nombre, valor):
self.tabla.insertar(LexToken(token, nombre, valor, self.numlinea))
+
+
+