En mi caso, hace algunas cuántas clases me dio por agregar los infix operators de triple comparación y diferencia (===
, !==
) al lexer que estamos haciendo, asà que ahora que los estamos convirtiendo en expresiones puedo fácilmente añadir a los tests esos mismos operadores, me imagino que la función a ejecutar será llamada desde el método _parse_expression
del parser quien es el que se está encargando de llamar a las funciones según su token, asà que serÃa cuestión de agregar los tokens que cree para estos dos operadores 👀
.
De hecho, ahora que lo pienso, podrÃa agregar más operadores al Lexer, como el operador de nave espacial de PHP: <=>
O también podrÃa agregar el sÃmbolo de potencia: ^
, o para hacerlo mas Pythonesco podrÃa ser este jaja: **
, uhh puedo agregar más operadores al Lexer!
.
Este serÃa mi source por ahora jaja:
source: str = """
5 + 5;
5 - 5;
5 * 5;
5 / 5;
5 > 5;
5 < 5;
5 == 5;
5 === 5;
5 != 5;
5 !== 5;
"""
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?