22 lines
559 B
Python
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) |