from dataclasses import dataclass from enum import auto, Enum from typing import Any class Datatype(Enum): NONE = auto() NULL = auto() COMMENT = auto() STRING = auto() INTEGER = auto() FLOAT = auto() COMPLEX = auto() @dataclass class Variable: name: str type: Datatype value: Any NONE_TYPE = Variable(None, Datatype.NONE, None) 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, }