No se vale, el reto ya estaba resuelto xD Prácticamente el lexer ya es capaz de identificar la mayoría de tokens de nuestro lenguaje, ya solo era cuestión de escribir el test jajaja:
def test_function_call(self) -> None:
source: str = """
variable resultado = suma(dos, tres);
"""
lexer: Lexer = Lexer(source)
tokens: List[Token] = []
for i in range(10):
tokens.append(lexer.next_token())
expected_tokens: List[Token] = [
Token(TokenType.LET, "variable"),
Token(TokenType.IDENT, "resultado"),
Token(TokenType.ASSIGN, "="),
Token(TokenType.IDENT, "suma"),
Token(TokenType.LPAREN, "("),
Token(TokenType.IDENT, "dos"),
Token(TokenType.COMMA, ","),
Token(TokenType.IDENT, "tres"),
Token(TokenType.RPAREN, ")"),
Token(TokenType.SEMICOLON, ";"),
]
self.assertEquals(tokens, expected_tokens)
Por cierto, en mi caso cambiaré el keyword “procedimiento” por el keyword “funcion”, a mi parecer la palabra “procedimiento” es una palabra más complicada de entender cuando estás aprendiendo a programar jajaja, la palabra “funcion” es más fácil uwu
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?