diff options
author | Thing2 <thing2@seacrossedlovers.xyz> | 2025-02-08 13:30:38 -0700 |
---|---|---|
committer | Thing2 <thing2@seacrossedlovers.xyz> | 2025-02-08 13:30:38 -0700 |
commit | 953d413a379ed8616db3266d9eef0bab2fd868b6 (patch) | |
tree | a9706a1ed382178cf8ee06b5bde28a4053fbfa00 /goatNote.py | |
parent | ea610aca9d33e9e6975f071987484899994ca1e3 (diff) |
Separated types and values into tokens so everything is in order
Diffstat (limited to 'goatNote.py')
-rw-r--r-- | goatNote.py | 58 |
1 files changed, 52 insertions, 6 deletions
diff --git a/goatNote.py b/goatNote.py index fb419b9..ff76bd6 100644 --- a/goatNote.py +++ b/goatNote.py @@ -9,19 +9,65 @@ class tokenTypes (Enum): TODO = 3 BULLETPOINT = 4 +class date: + day = 0 + month = 0 + year = 0 + def __init__(self, dateString: str): + dateString = dateString.split(".") + self.year = int(dateString[0]) + self.month = int(dateString[1]) + self.day = int(dateString[2]) + # Tokenizing # TODO ADD SPACES TO HEADING TODO -# TODO keep the stuff in order when it lists TODO def tokenize(file: str): headingRe = r"\s*\*\s*([A-z0-9]+)\s*\*\s*\[(\d\d\d\d[.]\d\d[.]\d\d)\]\s*{(TO[.]DO|DONE)}\s*" bulletPointRe = r"-\s*([A-z0-9]+)\s*" - heading = re.findall(headingRe, file) - print(heading) - bulletPoint = re.findall(bulletPointRe, file) - print(bulletPoint) + unprocessed = [] + end = False + + while not end: + heading = re.match(headingRe, file) + bulletPoint = re.match(bulletPointRe, file) + + if heading != None: + unprocessed.append(heading.group()) + file = file[heading.span()[1]:] + elif bulletPoint != None: + unprocessed.append(bulletPoint.group()) + file = file[bulletPoint.span()[1]:] + else: + end = True + + values = [] + types = [] + for i in unprocessed: + heading = re.findall(headingRe, i) + bulletPoint = re.findall(bulletPointRe, i) + + if heading != []: + heading = heading[0] + values.append(heading[0]) + types.append(tokenTypes.HEADING) + + values.append(date(heading[1])) + types.append(tokenTypes.DATE) + + if heading[2] == "TO.DO": + values.append(True) + else: + values.append(False) + types.append(tokenTypes.TODO) + + elif bulletPoint != []: + values.append(bulletPoint[0]) + types.append(tokenTypes.BULLETPOINT) + + return values, types -tokenize(""" +values, types = tokenize(""" *heading* [1004.23.23] {TO.DO} - hi - hey |