summaryrefslogtreecommitdiff
path: root/pysc-v/Frontend/reader.py
diff options
context:
space:
mode:
Diffstat (limited to 'pysc-v/Frontend/reader.py')
-rw-r--r--pysc-v/Frontend/reader.py33
1 files changed, 25 insertions, 8 deletions
diff --git a/pysc-v/Frontend/reader.py b/pysc-v/Frontend/reader.py
index 45d155c..7694a94 100644
--- a/pysc-v/Frontend/reader.py
+++ b/pysc-v/Frontend/reader.py
@@ -1,24 +1,40 @@
+# TODO Logging is interesting for debugging purposes, decide what to do with it
+from logger import newlogger
+logger = newlogger(__name__)
+#import logging
+#logger.setLevel(logging.WARN)
+
class Reader:
def __init__(self, filename):
self.filename = filename
self._file = None
self.lineno = 0
self.charno = 0
+ self.char = None
- def __enter__(self):
+ def open(self):
self._file = open(self.filename, "r")
+ return
+ def close(self):
+ self._file.close()
+ return
+
+ def __enter__(self):
+ self.open()
return self
def __exit__(self, type, value, tb):
- self._file.close()
+ self.close()
- def char(self):
- ch = self._file.read(1)
+ def advance(self):
self.charno += 1
- if ch == "\n":
+ if self.char == "\n":
self.lineno += 1
self.charno = 0
- return ch
+ self.char = self._file.read(1)
+
+ logger.debug("Read: %s" % self.char.__repr__())
+ return
def peek(self):
pos = self._file.tell()
@@ -28,7 +44,8 @@ class Reader:
if __name__ == "__main__":
- with Reader("reader.py") as src:
+ with Reader(__file__ ) as src:
print(src.peek())
while src.peek() != "":
- print(src.char())
+ src.advance()
+ print(src.char)