Files
CHOMPStation2/tools/maplint/source/common.py
2025-02-21 11:48:45 +04:00

37 lines
762 B
Python

import re
from dataclasses import dataclass
from .error import MapParseError
REGEX_TYPEPATH = re.compile(r'^/[\w/]+$')
class Typepath:
path: str
segments: list[str]
def __init__(self, path):
if not REGEX_TYPEPATH.match(path):
raise MapParseError(f"Invalid typepath {path!r}.")
self.path = path
self.segments = path.split('/')[1:]
def __eq__(self, other):
if not isinstance(other, Typepath):
return False
return self.path == other.path
def __str__(self) -> str:
return self.path
@dataclass
class Filename:
path: str
@dataclass
class Null:
pass
Constant = str | int | float | Filename | Typepath | Null | list['Constant'] | dict['Constant', 'Constant']