def __init__(self, text: str, start_location: Location, end_location: Location):
super().__init__(text, start_location, end_location)
if self._clean_text.startswith('0b'):
self._base = IntegerBase.base2
m = re.fullmatch(self._regex2, self._clean_text)
elif self._clean_text.startswith('0o'):
self._base = IntegerBase.base8
m = re.fullmatch(self._regex8, self._clean_text)
elif self._clean_text.startswith('0x'):
self._base = IntegerBase.base16
m = re.fullmatch(self._regex16, self._clean_text)
else:
self._base = IntegerBase.base10
m = re.fullmatch(self._regex10, self._clean_text)
if m is None:
raise SyntacticalError(self, 'Malformed {}'.format(self.short_name()))
self._value = int(m.group(1), self._base.value)
suffix = m.group(2)
if suffix is not None:
self._kind = IntegerKind(suffix)
else:
self._kind = IntegerKind.NONE
评论列表
文章目录