El programador Rodrigo Girão Serrão inicia una serie de artículos en los que documenta paso a paso la construcción de un intérprete para el lenguaje APL escrito en Python. El proyecto, inspirado en la serie «Let's build a simple interpreter» de Ruslan Spivak (centrada en Pascal), nace como un ejercicio práctico de creación de lenguajes y se aleja de su trabajo previo con Roj, otra لغة que desarrolló tras leer esa misma serie. El código fuente está disponible en el repositorio público RGSPL de GitHub.
En esta primera entrega se sientan las bases del intérprete definiendo las clases Token y Tokenizer. Se establecen los tipos de token iniciales —INTEGER, FLOAT, PLUS, MINUS, TIMES, DIVIDE, NEGATE, COMMUTE, LPARENS, RPARENS y EOF— junto con un conjunto de glifos «WYSIWYG» que se corresponden directamente con cada símbolo APL (+, -, ×, ÷, ⍨ y los paréntesis). El tokenizador recorre el código fuente de derecha a izquierda para respetar el orden de evaluación propio de APL y distingue entre números enteros y decimales, además de reconocer el prefijo ¯ para la negación unaria. Por ejemplo, la expresión «5 -⍨ ¯2.3» se convierte en una lista de cinco tokens terminada en un EOF.
El artículo describe las funciones skip_whitespace, get_integer, get_number_token, get_wysiwyg_token y get_next_token, y muestra cómo tokenize() devuelve la lista completa en orden lógico. La serie seguirá avanzando hasta conseguir un intérprete de APL plenamente funcional, cubriendo características específicas que no aparecen en un intérprete de Pascal.
