Files
pylisp/core/parser/parse_token.py
T

22 lines
559 B
Python

from core.tokens import (
SpecialForm,
BinaryOperator,
BinaryPredicate
)
from core.primitives.symbol import symbol
def parseToken(token: str):
for en in [SpecialForm, BinaryOperator, BinaryPredicate]:
if token in en:
return en(token)
if token in ['true', 'false']:
return token == 'true'
try:
return int(token)
except ValueError:
if token == 'inf':
return symbol(token)
try:
return float(token)
except ValueError:
return symbol(token)