aboutsummaryrefslogtreecommitdiff
path: root/compilador/parse/base.py
diff options
context:
space:
mode:
authorIván Ávalos <avalos@disroot.org>2022-11-25 13:14:35 -0600
committerIván Ávalos <avalos@disroot.org>2022-11-25 13:14:35 -0600
commit52d6d2107f14398ae59baaa893d596fb239c4679 (patch)
tree27f7170933fc0ecd57d7df5814517a7e3a7daad4 /compilador/parse/base.py
parenteb4a3019bc0251e5b2b8229679e3c65d61d55336 (diff)
downloadjavanol-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.py9
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):