diff --git a/datatypes.py b/datatypes.py index a44d443..05996a2 100644 --- a/datatypes.py +++ b/datatypes.py @@ -1,6 +1,7 @@ from dataclasses import dataclass from enum import auto, Enum from typing import Any +import re class Datatype(Enum): @@ -40,11 +41,15 @@ class Variable: NONE_TYPE = Variable(None, Datatype.NONE, None) +STR_MATCH_BEGIN = re.compile(r"^\"") +STR_MATCH_END = re.compile(r"\"$") +VAR_ASSIGN_TOKEN = re.compile(r"[A-Za-z]+ ?= ?") + VAR_MATCH = { - r"null": Datatype.NULL, - r"\/\/.+": Datatype.COMMENT, - r"\".+\"": Datatype.STRING, - r"-?\d+\.?\d{0,}?\+\d+\.?\d{0,}?i": Datatype.COMPLEX, - r"-?\d+\.\d{0,}": Datatype.FLOAT, - r"-?\d+": Datatype.INTEGER, + re.compile(r"null"): Datatype.NULL, + re.compile(r"\/\/.+"): Datatype.COMMENT, + re.compile(r"\".+\""): Datatype.STRING, + re.compile(r"-?\d+\.?\d{0,}?\+\d+\.?\d{0,}?i"): Datatype.COMPLEX, + re.compile(r"-?\d+\.\d{0,}"): Datatype.FLOAT, + re.compile(r"-?\d+"): Datatype.INTEGER, }