Definición de Tokens

Archivo: src/token.rs

El token es la unidad atómica de información léxica en Forja. En lugar de procesar texto plano carácter por carácter en el Parser, el compilador procesa una secuencia estructurada de Tokens provista por el Lexer.

Enumeración TokenKind

Define todos los tipos posibles de lexemas detectables en Forja, clasificados en cinco grupos principales:

1. Palabras Clave (Keywords)

Palabras con significado sintáctico especial reservadas por el lenguaje:

PalabraTokenKindPropósito
variable / varVariableDeclara una variable mutable.
constante / constConstanteDeclara una constante inmutable.
mutMutModifica mutabilidad de parámetros o referencias.
siSiInicia una estructura condicional.
sinoSinoRama alternativa para el condicional.
mientrasMientrasBucle controlado por condición booleana.
paraParaBucle clásico de estilo C (inicialización; condición; incremento).
repetirRepetirBucle de repetición fija (ej: repetir 5 veces).
claseClaseDeclara una nueva definición de tipo estructurado (Clase).
constructorConstructorDeclara la función constructora de una clase.
esteEsteReferencia a la instancia actual del objeto (similar a this o self).
nuevoNuevoInstanciación de una clase (ej: nuevo Persona()).
funcion / funFuncionDeclara una función o método.
prestadoPrestadoDeclara que un parámetro se pasa por referencia.
escribirEscribirFunción nativa para imprimir salida en terminal.
leerLeerFunción nativa para capturar entrada del usuario.
BDBDPalabra clave dedicada para APIs de almacenamiento de bases de datos.
verdaderoVerdaderoLiteral booleano True.
falsoFalsoLiteral booleano False.
nuloNuloValor nulo (ausencia de valor).
retornarRetornarDevuelve un valor desde una función.
importarImportarCarga módulos externos y librerías.
tipoTipoDeclara enums algebraicos.
coincidirCoincidirInicia una expresión de Pattern Matching.
casoCasoBrazo de Pattern Matching.
externo / externaExternoIndica una firma FFI vinculada a bibliotecas nativas de C.
hiloHiloLanza un hilo verde / concurrencia ligera.
canalCanalCrea un canal para comunicación entre hilos.
enviarEnviarEnvía un mensaje por canal.
recibirRecibirBloquea y recibe un mensaje desde un canal.
unirUnirBloquea esperando la finalización de un hilo.
traitTraitDefine interfaces / traits para polimorfismo.
implementaImplementaImplementa un trait para una clase específica.
seleccionarSeleccionarSelección no bloqueante de canales (select concurrente).
tiempoTiempoRama de timeout en seleccionar.
otroOtroRama por defecto en seleccionar.

2. Tipos de Datos Primitivos

3. Símbolos

Tokens de un solo carácter o caracteres combinados con significado sintáctico estructurado:

4. Operadores (Aritméticos, Relacionales y Lógicos)

5. Literales y Especiales

Estructura Token

Vincula un tipo de token específico a su posición física en el archivo fuente para garantizar reportes de diagnóstico precisos.

Definición de Token
pub struct Token {
    pub kind: TokenKind,
    pub linea: usize,
    pub columna: usize,
}

Desglose de Funciones de Token

pub fn new(kind: TokenKind, linea: usize, columna: usize) -> Self

Implementaciones de Rasgos (Traits)

impl fmt::Display for TokenKind

impl fmt::Display for Token