Documento de Control de Interfaces (ICD)

1. Propósito

Definir las interfaces principales del sistema AymaraLang y sus contratos de uso.

2. Interfaces externas

2.1 CLI del compilador

  • Comando: aymc [opciones] archivo.aym ...
  • Opciones principales: --debug, --dump-ast, --seed, --windows, --linux, -o.
flowchart LR User[Usuario] --> CLI[CLI aymc] CLI --> FS[Sistema de archivos] CLI --> Runtime[Runtime] CLI --> Backend[Backend NASM]

2.2 Sistema de archivos

  • Entradas: archivos .aym.
  • Salidas: .asm y binario nativo.

2.3 Runtime

  • Interfaz: llamadas a funciones integradas (qillqa, katu, input, matemáticas, arreglos, listas).

3. Interfaces internas

Interfaz Descripción
Lexer → Parser Tokens con tipo/lexema/posición
Parser → Semantic AST de nodos Expr/Stmt
Semantic → Codegen AST validado + símbolos
Codegen → Linker .asm

4. Reglas de interoperabilidad

  • El parser debe consumir tokens bien formados del lexer.
  • El codegen solo opera sobre AST validado.
  • El runtime debe mantener compatibilidad con el ABI usado por codegen.