diff options
author | Iván Ávalos <avalos@disroot.org> | 2022-11-16 20:07:28 -0600 |
---|---|---|
committer | Iván Ávalos <avalos@disroot.org> | 2022-11-16 20:07:28 -0600 |
commit | b20e23d221ac418deb8fa495fa375f715511f953 (patch) | |
tree | 9731460f5f3b95128f33e1a5bebaf92eeeae9c33 /compilador/lexer.py | |
parent | e4cf758129e81cf3e400a1432ec2d6604fe67a2d (diff) | |
download | javanol-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.py | 11 |
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)) + + + |