diff options
author | Iván Ávalos <avalos@disroot.org> | 2022-11-25 13:14:35 -0600 |
---|---|---|
committer | Iván Ávalos <avalos@disroot.org> | 2022-11-25 13:14:35 -0600 |
commit | 52d6d2107f14398ae59baaa893d596fb239c4679 (patch) | |
tree | 27f7170933fc0ecd57d7df5814517a7e3a7daad4 /compilador/parse/base.py | |
parent | eb4a3019bc0251e5b2b8229679e3c65d61d55336 (diff) | |
download | javanol-52d6d2107f14398ae59baaa893d596fb239c4679.tar.gz javanol-52d6d2107f14398ae59baaa893d596fb239c4679.tar.bz2 javanol-52d6d2107f14398ae59baaa893d596fb239c4679.zip |
Ya funcionan decl_global y decl_func
Diffstat (limited to 'compilador/parse/base.py')
-rw-r--r-- | compilador/parse/base.py | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/compilador/parse/base.py b/compilador/parse/base.py index a8f6f8a..49742e6 100644 --- a/compilador/parse/base.py +++ b/compilador/parse/base.py @@ -7,12 +7,13 @@ from errors import Error from typing import NoReturn from more_itertools import seekable +from nanoiter import NanoIter from tabla import TablaLex, Token from errors import Error class BaseParser: - def __init__(self, iterador: seekable): - self.iterador: seekable = iterador + def __init__(self, iterador: NanoIter): + self.iterador: NanoIter = iterador ''' Requires the next token to have a matching ltok. Returns that token, or an error. ''' @@ -49,10 +50,10 @@ class BaseParser: return tok def lex(self): - return next(self.iterador) + return self.iterador.next() def unlex(self): - self.iterador.seek(-1) + self.iterador.back() ''' Returns a syntax error if cond is false and void otherwise ''' def synassert(self, cond: bool, msg: str) -> (Error | NoReturn): |