MCPcopy Index your code
hub / github.com/cuervolu/wn

github.com/cuervolu/wn @v0.2.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.2.1 ↗ · + Follow
127 symbols 333 edges 17 files 0 documented · 0% 2 cross-repo links
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

WN++

Demo del REPL de WN++

WN++ es un lenguaje de programación de propósito general, de tipado dinámico, implementado en Rust. Nació con dos objetivos que no se contradicen: ser una herramienta de aprendizaje sobre implementación de lenguajes, y tener una identidad chilena genuina.

No es un lenguaje de producción (todavía). Es un lenguaje para entender qué pasa por debajo, cómo un lexer convierte texto en tokens, cómo un parser construye un árbol, cómo un intérprete le da vida a ese árbol. Y todo eso, con la cadencia y el humor del famoso español chileno.

pega fibonacci(n) {
  cachai (n <= 1) {
    n
  } si no {
    fibonacci(n - 1) + fibonacci(n - 2)
  }
}

lorea(fibonacci(10))  // → 55

Instalación

macOS y Linux

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/cuervolu/wn/releases/latest/download/wn-cli-installer.sh | sh

Windows (PowerShell)

powershell -ExecutionPolicy Bypass -c "irm https://github.com/cuervolu/wn/releases/latest/download/wn-cli-installer.ps1 | iex"

Verificar la instalación

wn --version

Actualizar

wn update

Instalación manual

Si prefieres no usar los scripts, descarga el binario para tu plataforma directamente desde GitHub Releases y agrégalo a tu PATH.

Plataforma Archivo
macOS (Apple Silicon) wn-cli-aarch64-apple-darwin.tar.gz
macOS (Intel) wn-cli-x86_64-apple-darwin.tar.gz
Linux x86_64 wn-cli-x86_64-unknown-linux-gnu.tar.gz
Linux ARM64 wn-cli-aarch64-unknown-linux-gnu.tar.gz
Windows 64-bit wn-cli-x86_64-pc-windows-msvc.zip

Cada archivo tiene un .sha256 correspondiente para verificar la integridad.


Uso

wn              # abre el REPL interactivo
wn programa.cl  # ejecuta un archivo

El nombre

WN++ se pronuncia como "wena plus plus": corto, chileno y fácil de escribir como comando wn.

El nombre mantiene la intención original del proyecto: un lenguaje tranquilo de leer, directo para aprender cómo funciona un intérprete por dentro, y con una identidad chilena que no se siente pegada encima.

El ++ es un guiño a la idea de ir construyéndolo por capas: primero intérprete, después tooling, bytecode, VM y todo lo que venga cuando el lenguaje se gane ese crecimiento.

Para quién es

WN++ está pensado para quien quiere entender cómo funcionan los lenguajes de programación por dentro, sin necesitar un doctorado para arrancar.

Si alguna vez te preguntaste cómo hace Python para saber que 3 + 4 * 2 es 11 y no 14, qué es exactamente un scope, cómo funciona un garbage collector, o qué pasa entre que escribes código y la máquina lo ejecuta — WN++ está construido para que puedas responder esas preguntas leyendo su código fuente.

El intérprete está escrito en Rust, es deliberadamente simple, y cada fase del pipeline existe como un módulo separado y legible. No asumimos conocimiento de teoría formal de lenguajes. Asumimos que sabes programar y tienes curiosidad.

Lo que WN++ no es

WN++ no es un lenguaje de producción (por ahora). No está optimizado para alto rendimiento, no tiene un ecosistema de librerías, no tiene garantías de estabilidad de API. Si necesitas eso, usa Python, Go, o Rust directamente.

WN++ no intenta representar el español en programación de forma general. Hay otros lenguajes en español — algunos serios, algunos experimentales. WN++ no compite con ellos. WN++ es específicamente chileno, no genéricamente hispano.

WN++ no esconde su complejidad, la expone. Si algo es difícil de implementar, el código lo muestra. No hay atajos que oculten cómo funciona el mecanismo real.

Estado actual

El pipeline completo — lexer, parser, AST e intérprete tree-walking — está implementado y funcional. Las siguientes fases — compilador a bytecode, VM y garbage collector — están en el roadmap. El detalle de cada fase está en docs/roadmap.

Construir desde el código fuente

Si quieres compilar WN++ tú mismo necesitas Rust 1.80 o superior.

git clone https://github.com/cuervolu/wn
cd wn
cargo build --release
./target/release/wn

Contribuir

WN++ es open source. Si te interesa contribuir, sea código, documentación, ejemplos, o simplemente feedback sobre qué se siente raro al escribir el lenguaje, eres bienvenido.

Lo más valioso que puedes hacer en esta etapa es escribir programas en WN++ y reportar qué se siente natural y qué no. El lenguaje mejora con uso real, no solo con teoría.

Para entender la filosofía del proyecto antes de contribuir, lee docs/filosofia.

Core symbols most depended-on inside this repo

advance
called by 33
crates/wn/src/parser/mod.rs
consume
called by 23
crates/wn/src/parser/mod.rs
peek_span
called by 19
crates/wn/src/parser/mod.rs
definir
called by 18
crates/wn/src/interpreter/env.rs
parse_expr
called by 18
crates/wn/src/parser/mod.rs
advance
called by 13
crates/wn/src/lexer/mod.rs
check
called by 13
crates/wn/src/parser/mod.rs
peek
called by 10
crates/wn/src/lexer/mod.rs

Shape

Method 69
Function 40
Enum 10
Class 8

Languages

Rust100%

Modules by API surface

crates/wn/src/parser/mod.rs36 symbols
crates/wn/src/interpreter/mod.rs22 symbols
crates/wn/src/lexer/mod.rs21 symbols
crates/wn/src/interpreter/env.rs11 symbols
crates/wn/tests/common/mod.rs7 symbols
crates/wn/src/interpreter/value.rs6 symbols
crates/wn-cli/src/main.rs6 symbols
crates/wn/tests/interpreter_runtime.rs5 symbols
crates/wn/src/lexer/token.rs5 symbols
crates/wn/src/ast/mod.rs4 symbols
crates/wn/src/interpreter/error.rs1 symbols
crates/wn/src/error.rs1 symbols

Used by 2 indexed graphs manifest dependencies, hub-wide

For agents

$ claude mcp add wn \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact