diff options
author | Ekaitz Zarraga <ekaitz@elenq.tech> | 2021-04-10 19:38:40 +0200 |
---|---|---|
committer | Ekaitz Zarraga <ekaitz@elenq.tech> | 2021-04-10 19:38:40 +0200 |
commit | 6e3e5e6aaf1bc9b8f2d787fdf5f9bbd714776b5d (patch) | |
tree | 101e0425ac695b03a139ffaf9e54cf8f7581eb5a /pysc-v/Frontend/reader.py | |
parent | af13bf2b02503c1af010a4ce3cef22e4efbc4dae (diff) |
reorder everything
Diffstat (limited to 'pysc-v/Frontend/reader.py')
-rw-r--r-- | pysc-v/Frontend/reader.py | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/pysc-v/Frontend/reader.py b/pysc-v/Frontend/reader.py new file mode 100644 index 0000000..45d155c --- /dev/null +++ b/pysc-v/Frontend/reader.py @@ -0,0 +1,34 @@ +class Reader: + def __init__(self, filename): + self.filename = filename + self._file = None + self.lineno = 0 + self.charno = 0 + + def __enter__(self): + self._file = open(self.filename, "r") + return self + + def __exit__(self, type, value, tb): + self._file.close() + + def char(self): + ch = self._file.read(1) + self.charno += 1 + if ch == "\n": + self.lineno += 1 + self.charno = 0 + return ch + + def peek(self): + pos = self._file.tell() + ch = self._file.read(1) + self._file.seek(pos) + return ch + + +if __name__ == "__main__": + with Reader("reader.py") as src: + print(src.peek()) + while src.peek() != "": + print(src.char()) |