A Lisp interpreter
Tokenizer, parser, evaluator and closures. Discover how a language runs your code, step by step.
Python · JavaScript · TypeScript
Construye un parser desde cero: tokeniza JSON, crea su árbol y reporta errores útiles.
Build it in your language
The tester treats your program as a black box: any language works. These are just the most convenient ones for this project.
JSON está presente en APIs, archivos de configuración y herramientas de desarrollo. En este proyecto aprenderás a leerlo desde cero, paso a paso y sin asumir conocimientos de compiladores.
Primero entenderás el mapa completo en una lección de lectura. Después construirás el parser en incrementos pequeños: valores simples, números, cadenas, arrays, objetos y errores útiles. Cada etapa explica el vocabulario, los casos límite y una forma concreta de comprobar tu avance.
7 stages across 3 phases. Every stage comes with its guide and its tests: you move on when they pass.
Recorre la entrada carácter a carácter y emite tokens: llaves, comas, literales.
Parser recursivo descendente para objetos, arrays y valores anidados.
Escapes Unicode, números en notación científica y errores con línea y columna.
Tokenizer, parser, evaluator and closures. Discover how a language runs your code, step by step.
Python · JavaScript · TypeScript
From the expression to the automaton. Backtracking, groups and character classes without your language's regex.
TypeScript · Python · Rust
From source code to runnable bytecode. Lexing, AST, semantic analysis, code generation and a VM that runs it.
Rust · C++ · TypeScript