Central Docs
Catálogo Inicio

Arquitectura

RIF tiene dos fases de entrada y una fase de salida.

Definición del target

main.rif describe el target:

main.rif -> CompiledRuleSet

El Compiled Rule Set contiene instrucciones internas y referencias resueltas a tokens, tablas y Rules. Se puede reutilizar para cada MIR externo que use el target.

MIR externo

El MIR externo es el programa que consume el target:

CompiledRuleSet + program.asm -> program.bin

El primer token de cada línea selecciona una Rule. Los demás tokens se entregan a esa Rule. RIF puede tokenizar el archivo o recibir tokens de otro compilador mediante la API directa.

Componentes

Componente Responsabilidad
Frontend.syntax Gramática Gram de la definición RIF.
Frontend.processor Materializa configuración, tablas, definiciones, Rules y cargas.
MIR.compiler Convierte nodos en instrucciones internas planas.
MIR.semantic Resuelve tokens, tablas, Rules y reservas.
MIR.runtime.RIFMachine Ejecuta instrucciones contra tokens MIR.
MIR.bitbuffer.BitBuffer Guarda y reescribe rangos arbitrarios de bits.
MIR.output.AssemblyImage Mantiene un buffer por sección.
pack.py Crea y valida paquetes .pack reproducibles.

La definición raíz posee el contexto global. RIFMachine posee el estado de ejecución: posición de tokens, storage, datastack, reservas y trazas.